gpt4 book ai didi

c++ - Qt:如何处理用户按下 'X'(关闭)按钮的事件?

转载 作者:IT老高 更新时间:2023-10-28 11:54:02 25 4
gpt4 key购买 nike

在Qt中,用户点击窗口框架的'X'(关闭)按钮即这个按钮的事件对应的槽是什么:

Close button of the window

如果没有这个插槽,有没有其他方法可以在用户按下关闭按钮后触发功能?

最佳答案

如果你有一个 QMainWindow 你可以重写 closeEvent 方法。

#include <QCloseEvent>
void MainWindow::closeEvent (QCloseEvent *event)
{
QMessageBox::StandardButton resBtn = QMessageBox::question( this, APP_NAME,
tr("Are you sure?\n"),
QMessageBox::Cancel | QMessageBox::No | QMessageBox::Yes,
QMessageBox::Yes);
if (resBtn != QMessageBox::Yes) {
event->ignore();
} else {
event->accept();
}
}


如果你继承了一个QDialogcloseEvent将不会被调用,所以你必须重写reject():

void MyDialog::reject()
{
QMessageBox::StandardButton resBtn = QMessageBox::Yes;
if (changes) {
resBtn = QMessageBox::question( this, APP_NAME,
tr("Are you sure?\n"),
QMessageBox::Cancel | QMessageBox::No | QMessageBox::Yes,
QMessageBox::Yes);
}
if (resBtn == QMessageBox::Yes) {
QDialog::reject();
}
}

关于c++ - Qt:如何处理用户按下 'X'(关闭)按钮的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17480984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com