WxPython:符合“确定”/“取消”按钮订单的跨平台方式
-
03-07-2019 - |
题
我正在学习 wxPython,所以大多数库和类对我来说都是新的。
我正在创建一个首选项对话框类,但不知道确保“确定”/“取消”(或“保存/关闭”)按钮在平台上的顺序正确的最佳方法。该程序旨在在 GNOME 和 Windows 上运行,因此我想确保每个平台的按钮顺序正确。
wxPython 是否提供了阻止我执行以下操作的功能 if platform.system() == 'Linux'
一种黑客行为?
解决方案
仅当您使用常用对话框(如 wx.FileDialog)时,对话框的外观才能更改,如果您自己制作对话框,则布局将在每个平台上保持不变。
wx.Dialog 有一个 CreateStdDialogButtonSizer 方法,它创建一个带有标准按钮的 wx.StdDialogButtonSizer ,您可能会在不同平台上看到布局的差异,但您不必使用它。
其他提示
您可以使用 StdDialogButtonSizer
http://www.wxpython.org/docs/api/wx.StdDialogButtonSizer-class.html
只要您的按钮具有标准 ID,它们就会按正确的顺序放置。
只是要添加一个问题,例如在 Mac 上,首选项对话框不会有“确定”/“取消”按钮。它会在输入时自动应用首选项(或至少在对话框关闭时)。所以在这种情况下你仍然需要进行一些平台嗅探。
如果您打算使用wx(或任何其他x平台工具包),您最好相信它能做正确的事,mon! - )
GenericMessageDialog小部件应该根据平台做正确的事情(但我从未使用它,所以我不确定它是否这样做)。请参阅wxPython演示。
您还可以使用SizedControls插件库(它是wxPython的一部分)。 SizedDialog类有助于创建符合每个平台的人机界面指南的对话框。请参阅wxPython演示。