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

    技术2022-07-16  81

    最近遇到一个问题,程序编译时出现报错: Must construct a QApplication before a QWidget。 我的main.cpp有这样的代码

    int main(int argc, char *argv[]) { QApplication a(argc, argv); }

    另外一个SSCT.h

    class SSCT : public QWidget { Q_OBJECT public: explicit SSCT(QWidget *parent = nullptr); }; extern SSCT theApp;

    SSCT.CPP

    #include "SSCT.h" SSCT theApp; SSCT::SSCT(QWidget *parent) : QWidget(parent) { }

    分析原因:Qt要求先构造QApplication再构造QWidget,SSCT theApp 是一个全局的,会先执行SSCT theApp再 QApplication a(argc, argv); 这违反了 Qt的规则; 解决方法:SSCT *theApp; 改成指针,需要用的时候再new;

    Processed: 0.063, SQL: 10