如何使用PyQt将多个值输入和输出对话框

时间:2012-05-21 15:33:39

标签: model-view-controller dialog pyqt

我有一个带有复杂对话框的便携式应用程序,该对话框显示用户选项卡,其中包含许多(超过50个)可以更改的不同设置值。用户可以设置值,然后按“确定”或“取消”。

如果用户按OK,我希望应用程序将更改存储在模型中,但如果用户按下取消,我希望应用程序忘记所做的任何更改。

将值输入和输出对话框的最佳策略是什么?

我知道如何使用QDataWidgetMapper将模型直接映射到窗口小部件,但是如果用户单击取消则会出现问题 - 我必须撤消所做的所有更改。另一方面,如果我创建一个特定于对话框的对象来存储与模型分开的值,那么我必须将模型中的所有值复制到对象中,然后如果用户按下OK则再将它们复制出来。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

QDataWidgetMapper非常适合这种情况,它有两个submit policiesAutoSubmitManualSubmit。在您的情况下,您可以使用ManualSubmit并在用户按下submit()时显式调用OK,或在用户按下Cancel时完全不提交。