python – QWidget:必须在QPaintDevice之前构造一个QApplication
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – QWidget:必须在QPaintDevice之前构造一个QApplication,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1279字,纯文字阅读大概需要2分钟。
内容图文
![python – QWidget:必须在QPaintDevice之前构造一个QApplication](/upload/InfoBanner/zyjiaocheng/731/773a4384ac5f4c6f86c2ddbd8ae9a542.jpg)
首先,出于兼容性原因,我使用Windows 7-64位与PyQwt5.2.0,PyQt4.5.4,NumPy1.3.0,python2.6.2 32位.
在运行我的脚本时,会出现:
QWidget: Must construct a QApplication before a QPaintDevice
上网,寻找解决方法,我得到QWidget继承QObject和QPaintDevice(它几乎每个我使用的对象继承),QMainWindow继承QWidget.我也得到了一些静态函数试图使用某些类,但我真的不明白它的含义.
如果有人可以解释一下,我会非常感激.
PS:对于任何翻译错误,我们深表歉意.
解决方法:
从代码中,错误是由于第102行引起的.在加载模块时,你创建了一个QWidget(更准确地说是一个QMainWindow).这发生在创建QApplication之前.
另外,我不知道为什么你有这个起始变量,因为似乎没有使用它.
如果要使用HelloBegin对象创建它,请在__init__方法中移动它.
编辑:
如果要在加载模块时显示启动画面,则需要通过小巧轻便的模块启动应用程序.在本单元中,您将:
>创建QApplication
>打开初始屏幕/消息框
>只有这样才能加载其他模块
为了使所有工作顺利进行,我将在单独的函数中导入模块,并使用一个小技巧确保它只在GUI准备好后启动.代码如下所示:
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QTimer
def startApp():
import m1
import m2
wnd = createWindow()
wnd.show()
import sys
app = QApplication(sys.argv)
splash = createSplashScreen()
splash.show()
QTimer.singleShot(1, startApp) # call startApp only after the GUI is ready
sys.exit(app.exec_())
其中createSplashScreen是创建启动画面的功能
内容总结
以上是互联网集市为您收集整理的python – QWidget:必须在QPaintDevice之前构造一个QApplication全部内容,希望文章能够帮你解决python – QWidget:必须在QPaintDevice之前构造一个QApplication所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。