问题描述
我注意到标准对话框在 Windows 和 Linux 下以不同的顺序显示了一些取消和确定按钮.在 Linux 下,您会看到[CANCEL] [OK]",而在 Windows 下,您会看到[OK] [CANCEL]".
I've noticed that standard dialogs some CANCEL and OK buttons in different order under Windows and under Linux. Under Linux, you get "[CANCEL] [OK]", and under Windows, "[OK] [CANCEL]".
我对标准对话框没有问题,但是我的自定义对话框"却没有问题.必须调整以匹配相同的顺序,具体取决于操作系统
I have no problem with the standard dialogs, but then my "custom dialogs" must be tweaked to match the same order, dependent of the O.S.
我的疑惑:
1.- 似乎存在一个名为 wx.StdDialogButtonSizer
的类,但我不确定应该如何使用它.有人可以发布任何简单/有效的示例吗?
1.- It seems to exist a class called wx.StdDialogButtonSizer
, but I'm not sure how it should be used. Can somebody post any working simple / working example?
以及主要问题":
2.- 我使用 wxglade 来构建"对话框的代码,所以我不确定我是否可以使用 StdDialogButtonSizer.有没有办法用给定的顺序定义对话框,并在运行时检查按钮是否遵循正确的顺序和交换"?如果没有,那两个小部件?
2.- I use wxglade to "build" code for the dialogs, so I'm not sure I can use StdDialogButtonSizer. Is there a way to define the dialog with a given order, and in run-time check if the buttons follow the right order and "exchange" those two widgets if not?
谢谢
推荐答案
StdDialogButtonSizer 绝对是自定义对话框的最佳选择.这是一个简单的例子:
The StdDialogButtonSizer is definitely the way to go for custom dialogs. Here's a simple example:
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-StdDialogButtonSizer-and-wx-ID-SAVE-td2360032.html
我不知道格莱德是否有办法做到这一点.
I don't know if there's a way to do this in Glade or not though.
这篇关于“自定义"中的确定/取消订单用 wxglade 创建的对话框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!