zoukankan      html  css  js  c++  java
  • 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尚未起作用。

  • 相关阅读:
    路由相关题目解析
    Centos7.6系统安装
    组播(二)---IGMP
    那些瞬间击中我的句子
    组播(一)
    记一次安装浪潮服务器的经历
    HP打印机驱动安装方法总结
    潍坊矿场ubuntu18 server 基本环境配置常用操作
    docker-zabbix
    MySQL 8.x 账号管理
  • 原文地址:https://www.cnblogs.com/ribavnu/p/4772335.html
Copyright © 2011-2022 走看看