Qt 报错: QWidget: Must construct a QApplication before a QWidget


最近遇到一个问题,程序编译时出现报错: Must construct aQApplicationbefore a QWidget。
我的mainpp有这样的代码 1 int main(int argc, char *argv[]) 2

另外一个SS.h

1 class SS : public QWidget 2 ; 7 extern SS theApp;

SSPP

1 #include "SS.h" 2 SS theApp; 3 SS::SS(QWidget *parent) : QWidget(parent) 4

分析原因:

  Qt要求先构造QApplication再构造QWidget,SS theApp 是一个全局的,全局对象的构造函数会在main函数之前执行,所以会先执行SS theApp再 QApplication a(argc, argv); 这违反了 Qt的规则;

解决方法:

  SS *theApp; 改成指针,需要用的时候再new;



上一篇:Qt QWidget: Must construct a QApplication before a QWidget

下一篇:Qt killtimer 析构函数 Error: timer id is not valid for object timer has not been killed


Qt
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图