QWidget:Must construct a QApplication before a QWidget。

 

异常描述:

      用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尚未起作用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值