Jafe_ZWJ 2022-02-12 23:52 采纳率: 0%
浏览 25
已结题

QT5中,程序运行主窗体不显示,执行定时器,定时事件为QMessagebox后程序退出

问题遇到的现象和发生背景

Win10系统。在很偶然的情况下遇到到如题的情况。主要实现过程如下:
1、在main.cpp中取消执行show方法;
2、在窗口构造函数中start一个定时器QTimer
相关代码如下:

//main.cpp中
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    //w.show();
    return a.exec();
}
//mainwindow.cpp中
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

  //timer在头文件中已经定义
    timer = new QTimer(this);
    connect(timer,&QTimer::timeout,this,[=](){
        //测试一
//QMessageBox::information(NULL, "Title", "Content",QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
        //测试二
//qDebug()<<"1";
        
        //测试三
        QMessageBox m;
        m.exec();
    });

    timer->start(1000 * 2);
}

问题相关代码,请勿粘贴截图
运行结果及报错内容

在进行测试一时,会弹出一次QMessageBox,点击QMessageBox的Yes或No后,程序也随之退出;
在进行测试二和测试三时,程序却一直不会自动退出,而是一直运行下去,分别一直输出“1”和输出QMessageBox对话框;

我的解答思路和尝试过的方法

起初我以为是模态对话框导致,猜测是不是跟Windows系统相关,然后我又以大概的思路写了WPF程序,发现WPF程序并不会退出程序,而是会一直运行,

我想要达到的结果

现在我想知道为什么在QT中会有这样的情况。

本人接触QT时间不长,请各路牛人给弟弟解答,小弟感激不尽!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 2月20日
    • 创建了问题 2月12日

    悬赏问题

    • ¥200 csgo2的viewmatrix值是否还有别的获取方式
    • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
    • ¥15 请把下列每一行代码完整地读懂并注释出来
    • ¥15 pycharm运行main文件,显示没有conda环境
    • ¥15 易优eyoucms关于二级栏目调用的问题
    • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
    • ¥15 为什么eclipse不能再下载了?
    • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
    • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
    • ¥15 特定网页无法访问,已排除网页问题