Python 在使用wxglade创建的“自定义”对话框中确定/取消订单

Python 在使用wxglade创建的“自定义”对话框中确定/取消订单,python,wxpython,wxglade,Python,Wxpython,Wxglade,我注意到,在Windows和Linux下,标准对话框中有一些按不同顺序排列的“取消”和“确定”按钮。在Linux下,您会得到[CANCEL][OK],在Windows下,您会得到[OK][CANCEL] 我对标准对话框没有问题,但是我的自定义对话框必须调整以匹配相同的顺序,这取决于O.S 我的疑问是: 1.-似乎存在一个名为wx.StdDialogButtonSizer的类,但我不确定该如何使用它。有人能发布一些简单的工作示例吗 主要问题是: 2.-我使用wxglade为对话框构建代码,所以我不

我注意到,在Windows和Linux下,标准对话框中有一些按不同顺序排列的“取消”和“确定”按钮。在Linux下,您会得到[CANCEL][OK],在Windows下,您会得到[OK][CANCEL]

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

我的疑问是:

1.-似乎存在一个名为wx.StdDialogButtonSizer的类,但我不确定该如何使用它。有人能发布一些简单的工作示例吗

主要问题是:

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


谢谢

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()
另见或


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

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()
另见或


不过,我不知道是否有办法在林间空地做到这一点。

谢谢你的回答和例子。我的问题是,我用wxglade创建gui,但它似乎不支持添加StdDialogButtonSizer,至少我不知道怎么做。我将检查添加自定义小部件选项…大多数wxpython gui构建器(如glade)支持的可用控件子集非常有限。我发现生成与我需要的代码相似的代码,然后手工编辑,对我来说更容易。我同意Velocirapts。这绝对是一种方法。嗨@MikeDriscoll,我根据你的例子发现了这个问题。谢谢你的回答和例子。我的问题是,我用wxglade创建gui,但它似乎不支持添加StdDialogButtonSizer,至少我不知道怎么做。我将检查添加自定义小部件选项…大多数wxpython gui构建器(如glade)支持的可用控件子集非常有限。我发现生成与我需要的代码相似的代码,然后手工编辑,对我来说更容易。我同意Velocirapts。这绝对是一种方法。嗨@MikeDriscoll,我根据你的例子发现了这个问题