python 复选框事件触发
我想在不手动点击按钮的情况下,让按钮触发一个事件。
self.cb1 = wx.CheckBox(self, -1, "pewpew")
self.Bind(wx.EVT_CHECKBOX, self.lg, self.cb1)
self.cb1.SetValue(True)
我试过上面的代码,它只是让按钮在被选中时初始化,但并没有真正触发事件函数。有没有办法手动触发这个函数呢?
1 个回答
1
是的,你可以使用 wx.CommandEvent
和 wx.PostEvent
:
import wx
class TestFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, id=-1, title=title)
text = wx.StaticText(self, label=title)
self.cb1 = wx.CheckBox(self, -1, "pewpew")
self.Bind(wx.EVT_CHECKBOX, self.lg, self.cb1)
evt = wx.CommandEvent(wx.EVT_CHECKBOX.typeId, self.cb1.GetId())
wx.PostEvent(self, evt)
def lg(self, in_event):
print in_event
print 'In lg'
app = wx.App()
frame = TestFrame(None, "Hello, world!")
frame.Show()
app.MainLoop()