QWidget:Must construct a QApplication before a QWidget。

简介: 异常描述:       用PyQt开发的界面程序,再新增加了几个module后,     在eric6开发环境下启动后什么都没出现,什么错误提示也都没有,     在控制台下:python   XXXX.py 后显示 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尚未起作用。

相关文章
|
10月前
|
存储 C++
14 QT - QMainWindow
14 QT - QMainWindow
42 0
|
11月前
|
前端开发 数据可视化 C++
Qt 之 QWidget QLabel
Qt 之 QWidget QLabel
90 0
|
1月前
|
API
【Qt 学习笔记】QWidget的toolTip属性 | focusPolicy属性
【Qt 学习笔记】QWidget的toolTip属性 | focusPolicy属性
69 5
|
1月前
Qt绘图之QWidget
Qt绘图之QWidget
41 1
|
1月前
QObject的setUserData和setProperty——Qt
QObject的setUserData和setProperty——Qt
24 0
|
3月前
Qt之QMainWindow
Qt之QMainWindow
|
3月前
|
数据可视化
QDialog_trial_1
QDialog_trial_1
17 1
|
4月前
|
存储
QT基础入门——QMainWindow与对话框QDialog(三)
QT基础入门——QMainWindow与对话框QDialog(三)
270 0
QT基础入门——QMainWindow与对话框QDialog(三)
|
容器
QMainWindow
QMainWindow是一个为用户提供主窗口程序 的类,包含一个菜单栏(menu bar)、多个工具栏 (tool bars)、多个锚接部件(dock widgets)、―个 状态栏(status bar )及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器、 图片编辑器等。
120 0