“Must construct a QApplication before a QPaintDevice” from QWidget

前端 未结 2 1535
余生分开走
余生分开走 2020-11-30 11:51

I\'m busy porting an IRC client from Python 2.6 to 3.3 and I\'ve stumbled across a problem with PyQt. The application originally used PyQt4, I\'m also recoding it to get it

相关标签:
2条回答
  • 2020-11-30 12:33

    I'm afraid single file will not be enough in this situation - the execution flow is not clear just from this one module. The message in question usually appears when you try to use some resources/create some objects that require initialized QApplication - like QIcon, for example.

    Instantiation of Qt-based GUI application usually looks like this:

    if __name__ == "__main__":
        app = QtGui.QApplication(sys.argv)
        main_window = MainWindowClass()
        main_window.show()
        sys.exit(app.exec_())
    
    0 讨论(0)
  • 2020-11-30 12:38

    The error message is pretty clear: you are trying to draw a QWidget (which in PyQt4.5 inherits QPaintDevice and QObject) before you instantiate the QApplication. But your code is too large for reading it line by line. Try to isolate the error building a small application and adding functionality step by step. Or use a debugger (IDEs like Eclipse + PyDev are supposed to be able to debug your app). Or provide us with a small, self contained example of the problem.

    0 讨论(0)
提交回复
热议问题