首页 > 其他分享 >Qt 报错: QWidget: Must construct a QApplication before a QWidget

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

时间:2024-03-14 14:00:16浏览次数:20  
标签:Qt SS QApplication 报错 QWidget theApp

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

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

另外一个SS.h

1 class SS : public QWidget
2 {
3     Q_OBJECT
4 public:
5     explicit SS(QWidget *parent = nullptr);
6 };
7 extern SS theApp;

SS.CPP

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

分析原因:

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

解决方法:

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

标签:Qt,SS,QApplication,报错,QWidget,theApp
From: https://www.cnblogs.com/ybqjymy/p/18072709

相关文章

  • Qt QToolBox 的常用方法
    在界面上拉一个ToolBox控件,和三个按钮控件:代码如下:1#include"widget.h"2#include"ui_widget.h"3#include<QGroupBox>4#include<QDebug>5#include<QMessageBox>6#include<QToolButton>7#include<QVBox......
  • Qt QToolBox tab 文字居中
    背景:在利用QToolBox实现一个简单的抽屉控件/导航控件时,发现QToolBox::tab的标题总是居左。尝试使用text-align属性、subcontrol-xxx属性都不起作用。解决办法:利用padding属性进行"硬编码"。代码片段如下:1//当前窗口的宽度,其中2//TOOLBOXWND_WIDTH:......
  • Qt 如何搭建Lua的运行环境
    一、Lua简介Lua是一种强大的、高效的、轻量级的、可嵌入的脚本语言。它支持过程(procedural)编程、面向对象编程、函数式编程以及数据描述。Lua是动态类型的,运行速度快,支持自动内存管理,因此被广泛用于配置、脚本编写等场景。二、Lua的优势Lua脚本可以很容易的被C/C++代......
  • Springboot2+consul启动时报错,读取的SystemConfig类的值全部为null
    【错误描述】     解决方案:检查是否已经在pom.xml配置了consul的相关jar包引用。 排查过程:检查了启动的日志,跟旧项目的正常日志进行对比,发现缺少了读取配置boostrap文件的日志。怀疑没有启动consul服务去远端读取consul的内容。 ......
  • IDEA启动报错 Internal error.Please refer to http://jb.ge/ide/critical-startup-er
    1.问题描述启动IDEA遇到报错Internalerror.Pleaserefertohttp://jb.ge/ide/critical-startup-errors2.问题原因java.net.BindException:地址已在使用中:也就是idea启动时需要占用一些端口,但是已经被其它打开的软件占用了。IDE正在本地主机上启动服务器,它将尝试在6942和......
  • linux系统报错AER PCIe Bus Error
    1、报错信息pcieport0000:00:1c.7:AER:PCIeBusError:severity=Corrected,type=PhysicalLayer,(ReceiverID)device[8086:a33f]errorstatus/mask=00000001/00002000[0[RxErr2、修改grub文件//备份grubsudocp/etc/default/grub/etc/default/grub.bak//随便......
  • docker系列-报错以及解决指南
    1.windows运行docker报错WindowsHypervisorisnotpresentDockerDesktopisunabletodetectaHypervisor.HardwareassistedvirtualizationanddataexecutionprotectionmustbeenabledintheBIOS.DockerDesktop-WindowsHypervisorisnotpresentDockerDeskto......
  • 基于ts的node项目引入报错归纳
    一、导入类型定义文件错误node_modules/@types/leaflet/index.d.ts:128:1128export=e;Thismoduleisdeclaredwith'export=',andcanonlybeusedwithadefaultimportwhenusingthe'esModuleInterop'flag.这个错误表明使用export=语法,但TypeSc......
  • Qt6.0开发 第四章 常用界面组件的使用
    第四章常用界面组件的使用在Qt类库中,所有界面组件类的字节或间接父类都是QWidget.QWidget的父类是QObject与QPaintDevice.所以QWidget是多重继承的类.QObject支持元对象系统,其信号与槽机制为编程中对象间通信提供了极大便利.QPaintDevice是能使用QPainter类在绘图设备上绘......
  • ORACLE 19C 报错总结
    使用sys用户登录sqlplus后,startup命令启动Oracle时报ORA-01078和LRM-00109错误,如下所示:SQL>conn/assysdbaConnectedtoanidleinstance.SQL>startupORA-01078:failureinprocessingsystemparametersLRM-00109:couldnotopenparameterfile'/home/oracle......