程序在Qt中关闭事件时崩溃
Program crashes on close Event in Qt
我试图为我的代码设置 close 事件,但是当我设置此代码时,我的程序崩溃了。
主窗口.cpp
void MainWindow::closeEvent(QCloseEvent *event)
{
event->ignore();
if (QMessageBox::Yes == QMessageBox::question(this, "Close Confirmation?",
"Are you sure you want to exit?",
QMessageBox::Yes|QMessageBox::No))
{
if(QMessageBox::Yes)
{
if(aboutDialog)
{
aboutDialog->close();
event->accept();
}
event->accept();
}
}
}
void MainWindow::showAboutDialog()
{
aboutDialog = new QDialog;
Ui::About aboutUi;
aboutUi.setupUi(aboutDialog);
connect(aboutUi.Close, SIGNAL(pressed()), aboutDialog, SLOT(close()));
aboutDialog->show();
}
主窗口.h
private:
QDialog *aboutDialog;
我很困惑为什么会发生这种情况。帮我解决这个问题!
如果您打算关闭,请不要忽略该事件,请尝试以下操作:
void MainWindow::closeEvent(QCloseEvent *event)
{
if (QMessageBox::Yes != QMessageBox::question(this, "Close Confirmation?",
"Are you sure you want to exit?", QMessageBox::Yes | QMessageBox::No))
{
event->ignore();
}
}
在创建 aboutDialog
-box 时,您应该将mainWindow
作为父级传递,正如 Nejat 的评论所建议的那样:aboutDialog = new QDialog(mainWindow);
.这将确保在主窗口关闭时关闭aboutDialog
。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- Android NDK传感器向事件队列报告奇怪的间隔
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 程序崩溃并显示"std::out_of_range"错误
- 从文本文件中读取时钟时间和事件时间并进行处理
- WMI检测进程创建事件-c++
- CoInitialize()在单独的线程上崩溃而不返回
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- 使用调试/崩溃报告将应用程序部署到客户端
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- ExtractIconEx:可以工作,但偶尔会崩溃
- 模态qprogressdialog :: setValue()导致嵌套事件循环崩溃
- 如何检测终止进程事件、计算机关闭和计算机崩溃
- OSX-Qt应用程序在接收系统事件QEvent::FileOpen时崩溃
- 程序在Qt中关闭事件时崩溃
- Qt paint事件崩溃
- SDL2程序使用事件崩溃