我注意到标准对话框在Windows和Linux下以不同顺序显示了一些CANCEL和OK按钮。在Linux下,你会得到“[CANCEL] [OK]”,在Windows下,“[OK] [CANCEL]”。
我对标准对话框没有任何问题,但是我的“自定义对话框”必须调整以匹配相同的顺序,这取决于O.S。
我的怀疑:
1.-它似乎存在一个名为wx.StdDialogButtonSizer
的类,但我不确定它应该如何使用。有人可以发布任何工作简单/工作的例子吗?
和“主要问题”:
2.-我使用wxglade来“构建”对话框的代码,所以我不确定我是否可以使用StdDialogButtonSizer。有没有办法用给定的顺序定义对话框,并在运行时检查按钮是否遵循正确的顺序,如果没有那么“交换”这两个小部件?
谢谢
答案 0 :(得分:5)
StdDialogButtonSizer绝对是自定义对话框的方法。这是一个简单的例子:
import wx
########################################################################
class SampleDialog(wx.Dialog):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Dialog.__init__(self, parent, title="Tutorial")
btnOk = wx.Button(self, wx.ID_OK)
btnCancel = wx.Button(self, wx.ID_CANCEL)
btnSizer = wx.StdDialogButtonSizer()
btnSizer.AddButton(btnOk)
btnSizer.AddButton(btnCancel)
btnSizer.Realize()
self.SetSizer(btnSizer)
#----------------------------------------------------------------------
if __name__ == '__main__':
app = wx.App(False)
dlg = SampleDialog(None)
dlg.ShowModal()
另请参阅WxPython: Cross-Platform Way to Conform Ok/Cancel Button Order或http://wxpython-users.1045709.n5.nabble.com/wx-StdDialogButtonSizer-and-wx-ID-SAVE-td2360032.html
我不知道是否有办法在Glade中这样做。不过。