0

ユーザーがルートかどうかをチェックするプログラムを書いています。そうでない場合は、パスワードの入力ダイアログが表示されます。私も以前に(一部のクラス内で)これを行いましたが、どこかでファイルを失いました。

if os.name == 'posix':
  if not os.getuid() == 0:
    input, ok = QtGui.QInputDialog.getText(None, 'Password',
                                                   'Enter password:', QtGui.QLineEdit.Password)
  if ok:
    #remaining code

ここでの問題は、これがエラーを生成することですQWidget: Must construct a QApplication before a QPaintDevice

UIクラスを使用して入力ダイアログを表示することは可能ですか? またはこれに対する他の解決策はありますか?

4

1 に答える 1

0

コード全体を使用したわけではありませんが、PyQt の基本的なガイドラインに従っていないようです。正しい pyqt アプリを作成するために最低限必要なものは次のとおりです。

import sys
from PyQt5 import QtWidget

def main():
    app = QtWidget.QApplication(sys.argv)
    w = QtWidget.SOMEWIDGET()
    w.show()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()
于 2015-01-13T11:09:24.490 に答える