Qt5.17 QWidget程序关闭前询问的C++代码
时间: 2024-10-08 12:01:41 浏览: 45
在Qt5.17中,如果你想在QWidget级别的应用程序关闭前询问用户的确认,可以在`QWidget`的槽函数里实现,例如在`closeEvent()`事件处理程序中。这是一个示例:
```cpp
class MyWidget : public QWidget {
public:
// 其他成员函数...
private slots:
void onClose() {
QMessageBox msg;
msg.setText("您真的要关闭这个窗口吗?");
msg.setInformativeText("这将不再显示在这个屏幕上。");
msg.setWindowTitle("退出确认");
msg.setIcon(QMessageBox::Question);
msg.addButton(QMessageBox::Yes);
msg.addButton(QMessageBox::Cancel);
int ret = msg.exec();
switch (ret) {
case QMessageBox::Yes:
QApplication::quit(); // 如果点击"是",则退出应用
break;
case QMessageBox::Cancel:
// 用户取消,不做任何操作或返回到原来的界面
break;
}
}
protected:
void closeEvent(QCloseEvent *event) override {
onClose(); // 调用onClose() 函数进行询问
event->ignore(); // 阻止默认的关闭动作,因为我们已经处理了这个事件
}
};
```
这里我们创建了一个名为`onClose`的槽函数,在窗口被关闭时调用,并显示一个消息框让用户确认。
阅读全文