gpt4 book ai didi

python - wxPython中如何获取CreateButtonSizer(或CreateSeparatedButtonSizer)创建的按钮对象

转载 作者:行者123 更新时间:2023-11-28 22:54:15 25 4
gpt4 key购买 nike

我觉得这应该很简单,但我找不到任何东西。我有一个非常简单的对话框,带有两个文本控件。然后,我使用 CreateSeparatedButtonSizer 方法创建了一个确定/取消按钮大小调整器。

问题是,我想尝试根据文本控件中条目的某些条件启用/禁用“确定”按钮。换句话说,在文本控件中输入有效条目之前,我希望禁用“确定”按钮。我似乎找不到任何关于如何引用按钮的信息,而且我宁愿不手动创建按钮,以便对话框保持平台“不可知论”。

小示例代码:

class MyDialog(wx.Dialog):
def __init__(self, parent, title):
wx.Dialog.__init__(self, parent=parent, title=title)

# Grid sizer for text controls and labels:
grid = wx.GridBagSizer(2,2)

# Add the input fields:
grid.Add(wx.StaticText(self, label="Field 1: "),pos=(0,0))
self.fld1 = wx.TextCtrl(self, value="", size=(70,-1))
grid.Add(self.fld1, pos=(0,1))
grid.Add(wx.StaticText(self, label="Field 2: "),pos=(1,0))
self.fld2 = wx.TextCtrl(self, value="", size=(70,-1))
grid.Add(self.fld2, pos=(1,1))

# Buttonsizer:
btns = self.CreateSeparatedButtonSizer(wx.OK|wx.CANCEL)

# Lay it all out:
mainSizer = wx.BoxSizer(wx.VERTICAL)
mainSizer.Add(grid, 1, wx.ALL|wx.EXPAND)
mainSizer.Add(btns, 0, wx.ALL|wx.EXPAND)
self.SetSizer(mainSizer)
self.Fit()

因此,我想将一个方法绑定(bind)到文本控件,该方法检查输入是否有效。如果是,那么 OK 按钮将被启用,如果不是,那么它应该被禁用。有什么办法吗?

谢谢!

最佳答案

确定按钮的 ID 为 wx.ID_OK。如果您试图从您的 MyDialog 类中找到它,您可以尝试 wx.FindWindowById(wx.ID_OK, self)。如果您尝试从 MyDialog 类外部引用按钮,您需要使用 MyDialog 的实例作为第二个参数。前任。

dialog_instance = MyDialog()
ok_button = wx.FindWindowById(wx.ID_OK, dialog_instance)

这里有一些关于 FindWindowById 的文档 http://xoomer.virgilio.it/infinity77/wxPython/wxFunctions.html#FindWindowById

关于python - wxPython中如何获取CreateButtonSizer(或CreateSeparatedButtonSizer)创建的按钮对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18260525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com