0

我正在编写一个程序来检查用户是否是 root。如果没有,则会显示输入对话框以输入密码。我之前也这样做过(在某个班级内),但在某处丢失了文件。

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 回答