【发布时间】:2012-05-12 04:09:29
【问题描述】:
我是一名学生程序员,使用 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 已经为此提供了一些东西,那就太好了!
【问题讨论】:
-
除了 talnicolas 所说的,我建议尝试使用
QWidget::setWindowModified()和QWidget::isWindowModified()。每当用户对文档执行某些操作时,您都可以将该属性设置为 true,并在 close 方法中检查它是否为 true。这也可以将那个方便的星号(至少在 Windows 中)放在标题栏中,以便用户可以查看文档是否已被编辑。
标签: c++ qt user-interface exit qdialog