WxPython:符合Ok / Cancel按钮顺序的跨平台方式

时间:2009-05-04 06:04:53

标签: python user-interface cross-platform wxpython

我正在学习wxPython,所以大多数库和类对我来说都是新的。

我正在创建一个“首选项”对话框类,但不知道确保平台的“确定/取消”(或“保存/关闭”)按钮的顺序正确的最佳方法。该程序旨在在GNOME和Windows上运行,因此我想确保每个平台的按钮顺序正确。

wxPython是否提供阻止我进行if platform.system() == 'Linux'黑客攻击的功能?

4 个答案:

答案 0 :(得分:4)

只有在使用股票对话框(如wx.FileDialog)时,对话框的外观才会发生变化,如果您自己制作,则布局将在每个平台上保持不变。

wx.Dialog有一个CreateStdDialogBu​​ttonSizer方法,该方法使用标准按钮创建一个wx.StdDialogBu​​ttonSizer,您可能会在不同平台上看到布局的差异,但您不必使用它。

答案 1 :(得分:2)

您可以使用StdDialogBu​​ttonSizer

http://www.wxpython.org/docs/api/wx.StdDialogButtonSizer-class.html

只要您的按钮具有标准ID,它们就会以正确的顺序放置。

只是为了添加皱纹,例如在Mac上,首选项对话框没有OK / Cancel按钮。它会在输入时自动应用首选项(或者至少在对话框关闭时)。所以在这种情况下你仍然需要做一些平台嗅探。

答案 2 :(得分:0)

如果您打算使用wx(或任何其他x平台工具包),您最好相信它能做正确的事,mon! - )

答案 3 :(得分:0)

GenericMessageDialog小部件应该根据平台做正确的事情(但我从未使用它,所以我不确定它是否这样做)。请参阅wxPython演示。

您还可以使用SizedControls插件库(它是wxPython的一部分)。 SizedDialog类有助于创建符合每个平台的人机界面指南的对话框。请参阅wxPython演示。