2015-01-13 1 views
0

사용자가 루트인지 확인하는 프로그램을 작성 중입니다. 그렇지 않으면 입력 대화 상자에 암호가 표시됩니다. 이전에 (클래스 내에서)이 작업을 수행했지만 어딘가에서 파일을 잃어 버렸습니다. PyQt4의 간단한 입력 대화 상자

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 클래스를 사용하여 입력 대화 상자가 표시 만 가능을 생산하고 있다는 점이다? 또는 이것에 대한 다른 해결책이 있습니까?

+0

의 중복 가능성 [A는 QWidget 전에의 QApplication을 구성해야합니다 (http://stackoverflow.com/questions/21590421/must-construct : 여기 당신이 올바른 PyQt는 응용 프로그램을 만들 수 있어야합니다 최소한 -a-qapplication-before-a-qwidget) – Trilarion

답변

0

당신은 전체 코드를 사용하지 않았지만 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() 
+0

답장을 보내 주시면 죄송합니다. 내가 원하는 것은 암호 입력을위한 입력 대화 상자 만 얻는 것입니다. 위의 예제에서 어떻게 입력 대화 상자를 얻을 수 있습니까? 'class Example (QtGui.QWidget) :'에서 가장 많이 사용되는 예제가 있습니다. 하지만 제 경우에는 입력 대화 상자 만 있으면됩니다. –