处理退出而不保存在Qt中
Handling exit without saving in Qt
我是一名使用Qt构建和应用程序进行工作的学生程序员,我很难弄清楚如何处理用户退出对话框而不保存更改。该对话框主要用于数据输入,因此能够识别是否已进行更改,然后为用户提供在退出之前保存的选项将非常有用。我在QDialog上浏览了Qt的文档,没有找到任何关于按下退出按钮时返回的模式的信息。有一种方法来识别何时单击退出按钮是第一要务。此外,作为一名学生程序员,我也愿意接受任何关于如何比较前后数据的最佳实践的想法。数据被输入到一个表中,所以我猜我必须做这样的事情
connect(some kinda exit handler, SIGNAL(clicked), this, SLOT(comparePreAndPostTable)
QVector<QString> prechanges = everything from the table
QVector<QString> postchanges = everything from table when exit is clicked
if(prechanges != postchanges)
{
Give oppertunity to save
}
任何帮助不胜感激!如果Qt已经有这方面的东西,那就太好了!
您需要覆盖 QWidget 的 closeEvent()
方法来处理对话框的退出按钮。该文档甚至给出了一个示例,该示例看起来奇怪地类似于您正在寻找的内容:
void MainWindow::closeEvent(QCloseEvent *event)
{
if (maybeSave()) {
writeSettings();
event->accept();
} else {
event->ignore();
}
}
maybeSave()
会在哪里进行比较,看看是否有任何变化。
相关文章:
- 调试符号中缺少 QObject 类信息(编辑但存在其他 Qt 类)
- 无法在这个基本的Qt代码片段中找到错误,但我被告知它肯定存在?
- C++,QT. QShortcut的函数调用不存在
- 如果存在 QSQLITE 数据库,则根据 qt 中的行值插入或更新
- libGL确实存在,但链接器找不到它 - Qt 4.8.7,CentOS 7.5
- 在 Qt 中解析嵌套的 JSON 时出现意外结果(数组不存在)
- QT 打开不存在的数据库
- 使用导入的图像保存在 QT 中的 QLabel 中,保存 GUI 的状态
- 使用 qt c++ 检查 Xml 中是否存在根元素
- C++/Qt项目中的连接功能中不存在插槽?(已经重新运行了制作)
- 如何使用QT检查程序是否存在于路径中
- QT设计器中的自定义小部件在框架中具有预先存在的布局
- QT图像查看器示例,可能存在内存泄漏
- QT错误:搜索不存在的函数
- Qt UI 存在,但 UI 标头和源不存在
- 如何知道基于项目的ListView QT C 中是否存在字符串
- 部署Qt-dll文件-找不到windows插件,尽管平台/qwindows.dll存在,因此存在libEGL和libGL
- qt检查文件中是否存在文件,如果它没有提示用户输入其位置,则将文件复制到程序工作目录
- 处理退出而不保存在Qt中
- 正确的方式来管理内存在Qt时暴露QObject类到qml