QWidget:Must construct a QApplication before a QWidget。
2015-08-31 09:56
381 查看
异常描述:
用PyQt开发的界面程序,再新增加了几个module后,
在eric6开发环境下启动后什么都没出现,什么错误提示也都没有,
在控制台下:python XXXX.py 后显示 QWidget:Must construct a QApplication before a QWidget。
平常的启动代码为:
原因猜测步骤:
①、简单拖拽或随便生成一个简单的可视化界面: XXX_Class,然后执行上述代码,界面正常显示。
②、将上述的红色背景加粗的代码注释掉,然后再执行可视化界面的显示,什么都没有显示而且没有错误提示。
③、继续将上述的红色背景加粗的代码注释点,在控制台下执行该段代码,控制台下输出:
QWidget:Must construct a QApplication before a QWidget
④、因此搜索QApplication类的作用。
巴拉巴拉的,功能还真不少,QApplication 对象做了很多的初始化工作,它必须在所有与用户界面相关的其它类被创建之前被创建。
⑤、然后回顾新增加的几个module,发现在一个class的公共属性中有对可视化类的实例化代码,将其注释掉后,整体代码能正常启动并能显示界面了。
个人注解:
在代码的加载阶段不要执行可视化类的初始化操作,因为QApplication尚未起作用。
用PyQt开发的界面程序,再新增加了几个module后,
在eric6开发环境下启动后什么都没出现,什么错误提示也都没有,
在控制台下:python XXXX.py 后显示 QWidget:Must construct a QApplication before a QWidget。
平常的启动代码为:
if __name__ == '__main__': import sys from PyQt5.QtWidgets import QApplication app = QApplication(sys.argv) xx = XXX_Class() xx.show() sys.exit(app.exec_())
原因猜测步骤:
①、简单拖拽或随便生成一个简单的可视化界面: XXX_Class,然后执行上述代码,界面正常显示。
②、将上述的红色背景加粗的代码注释掉,然后再执行可视化界面的显示,什么都没有显示而且没有错误提示。
③、继续将上述的红色背景加粗的代码注释点,在控制台下执行该段代码,控制台下输出:
QWidget:Must construct a QApplication before a QWidget
④、因此搜索QApplication类的作用。
巴拉巴拉的,功能还真不少,QApplication 对象做了很多的初始化工作,它必须在所有与用户界面相关的其它类被创建之前被创建。
⑤、然后回顾新增加的几个module,发现在一个class的公共属性中有对可视化类的实例化代码,将其注释掉后,整体代码能正常启动并能显示界面了。
个人注解:
在代码的加载阶段不要执行可视化类的初始化操作,因为QApplication尚未起作用。
相关文章推荐
- iOS之Block
- 《从零开始学Swift》学习笔记(Day 8)——小小常量、变量大作用
- 用CSS美化checkbox复选按钮和raido单选按钮-适用于移动端
- 新图形API为unity5 带来了什么&下一代新图形API的好处
- Android开发教程
- Android Context 上下文 你必须知道的一切
- 如何调试跟踪Android源代码
- 礼拜一,兔子回归~继续来码一码iOS开发琐事~
- 新图形API为unity5 带来了什么&下一代新图形API的好处
- Swift 2.0学习笔记(Day 8)——小小常量、变量大作用
- 分析appstore审核失败的真实案例及解决办法
- 微信公众平台开发之天气预报功能
- 一款基于微客服的仿微信的聊天软件
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第九节:卡通渲染
- ArcGIS4Android开发----空间查询
- ios编程——使用抽屉MMDrawerController和系统手势interactivePopGestureRecognizer冲突的解决方法
- 遇到的几个IOS开源代码
- androidStudio中如何加载字体资源?
- android Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
- Android中XML解析之XMLSAXParser解析