使用wxglade创建的“自定义”对话框中的OK / CANCEL顺序

时间:2011-07-14 13:09:21

标签: python wxpython wxglade

我注意到标准对话框在Windows和Linux下以不同顺序显示了一些CANCEL和OK按钮。在Linux下,你会得到“[CANCEL] [OK]”,在Windows下,“[OK] [CANCEL]”。

我对标准对话框没有任何问题,但是我的“自定义对话框”必须调整以匹配相同的顺序,这取决于O.S。

我的怀疑:

1.-它似乎存在一个名为wx.StdDialogButtonSizer的类,但我不确定它应该如何使用。有人可以发布任何工作简单/工作的例子吗?

和“主要问题”:

2.-我使用wxglade来“构建”对话框的代码,所以我不确定我是否可以使用StdDialogBu​​ttonSizer。有没有办法用给定的顺序定义对话框,并在运行时检查按钮是否遵循正确的顺序,如果没有那么“交换”这两个小部件?

谢谢

1 个答案:

答案 0 :(得分:5)

StdDialogBu​​ttonSizer绝对是自定义对话框的方法。这是一个简单的例子:

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 Orderhttp://wxpython-users.1045709.n5.nabble.com/wx-StdDialogButtonSizer-and-wx-ID-SAVE-td2360032.html

我不知道是否有办法在Glade中这样做。不过。