gpt4 book ai didi

python - 来自 QWidget 的 "Must construct a QApplication before a QPaintDevice"

转载 作者:太空宇宙 更新时间:2023-11-03 13:19:25 27 4
gpt4 key购买 nike

我正忙于将 IRC 客户端从 Python 2.6 移植到 3.3,我偶然发现了 PyQt 的一个问题。该应用程序最初使用 PyQt4,我也在对其进行重新编码以使其与 PyQt5 一起使用,但我收到一个没有任何行引用的错误:“QWidget:必须在 QPaintDevice 之前构造一个 QApplication”。我已将问题缩小到一个类。

我知道这里已经被问过很多次了,但我无法为我的案例提取一个确定的答案,所以如果我的问题显得无知,我深表歉意。

这是一些代码:http://pastebin.com/Lj60icgQ

愚蠢的我没有在导入语句之后放置“app”变量,而我应该这样做。然后我将其余代码放在主文件的底部,我不再收到该错误。感谢您的帮助!

最佳答案

恐怕在这种情况下单个文件是不够的——仅从这个模块来看执行流程并不清晰。当您尝试使用某些资源/创建一些需要初始化 QApplication 的对象(例如 QIcon)时,通常会出现相关消息。

基于 Qt 的 GUI 应用程序的实例化通常如下所示:

if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
main_window = MainWindowClass()
main_window.show()
sys.exit(app.exec_())

关于python - 来自 QWidget 的 "Must construct a QApplication before a QPaintDevice",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19383684/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com