gpt4 book ai didi

c++ - 在 Qt 中处理退出而不保存

转载 作者:行者123 更新时间:2023-11-30 00:38:33 25 4
gpt4 key购买 nike

我是一名学生程序员,使用 Qt 来构建和应用工作,我在弄清楚如何处理用户没有保存更改的情况下退出对话框时遇到了一些困难。该对话框主要用于数据输入,因此能够识别是否进行了更改,然后为用户提供在退出前保存的选项将非常有用。我浏览了 Qt's Documentation on QDialog如果按下退出按钮,则没有发现任何关于返回模式的信息。有一种方法可以识别何时单击退出按钮是首要任务。此外,作为一名学生程序员,我也乐于接受关于我应该如何比较数据前后的最佳实践的任何想法。数据被输入到一个表中,所以我猜我必须做这样的事情

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 已经有这方面的东西,那就太好了!

最佳答案

您需要覆盖QWidgetcloseEvent() 方法处理对话框的退出按钮。该文档甚至给出了一个奇怪的例子,看起来像你正在寻找的东西:

 void MainWindow::closeEvent(QCloseEvent *event)
{
if (maybeSave()) {
writeSettings();
event->accept();
} else {
event->ignore();
}
}

maybeSave() 将比较以查看是否有任何更改。

关于c++ - 在 Qt 中处理退出而不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10417914/

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