1

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

我对标准对话框没有任何问题,但是必须调整我的“自定义对话框”以匹配相同的顺序,具体取决于操作系统

我的疑惑:

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

还有“主要问题”:

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

谢谢

4

1 回答 1

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:符合确定/取消按钮顺序的跨平台方式http://wxpython-users.1045709.n5.nabble.com/wx-StdDialogBu ​​ttonSizer-and-wx-ID-SAVE-td2360032.html

我不知道是否有办法在 Glade 中做到这一点。

于 2011-07-14T13:46:28.653 回答