xiaoXiaoZhou 发表于 2022-10-28 11:23:45

QMessageBox的关闭问题

我想做一个应用界面的关闭效果,大致是这样的:点击主窗口右上角的关闭后,会弹出一个提醒对话框询问是关闭还是最小化。我具体是这样做的,改写了closeEvent函数:void MainWindow::closeEvent(QCloseEvent *e),窗口关闭时会新建一个QMessageBox的提醒框。


现在出现了一个这样的问题,点击QMessageBox窗口右上角的关闭时,应该时仅关闭QMessageBox窗口才对,但它却连同我的主窗口也一起关闭了:(糟糕透了,我想问问各位前辈、老师,这个问题应该怎样去解决?谢谢大家!



snolkmg 发表于 2022-10-28 11:23:46

直接这么写:
void closeEvent(QCloseEvent *event)
{
    int ret = QMessageBox::information(this,
                                       "关闭提示",
                                       "您点击了关闭按钮,您是想:",
                                       "最小化到托盘",
                                       "退出程序");
    if(ret == 0) {
      qDebug() << "最小化到托盘";
      event->ignore();
    } else {
      qDebug() << "退出程序";
      event->accept();
    }
}

xiaoXiaoZhou 发表于 2022-10-31 09:54:23

snolkmg 发表于 2022-10-31 09:26
直接这么写:




可以了可以了,这样好像就是禁用那个关闭按钮,我想要的效果实现了。谢谢老师!:lol

deng_chen 发表于 2024-4-23 14:22:09

自定义标题头,然后X,改成自定义事件,然后在你的事件里面再去弹出弹框,点退出程序发送消息给,主窗口接受到消息,关闭主窗口和Confirm窗口
页: [1]
查看完整版本: QMessageBox的关闭问题