所以我是python的初学者,通常是C / C ++或Java代码。在开发GUI的过程中,我的事件会在程序运行开始时被调用,而不是在我单击按钮时调用。 (我知道我的缩进是错误的,因为我需要将它放入代码块中)。当我左键单击按钮时,如何才能调用我的事件?
def __init__(self, parent, title):
super(QuadDash, self).__init__(parent, title=title, size=(1024, 780))
self.SetBackgroundColour("white")
pnl = wx.Panel(self)
cbtn = wx.Button(pnl, label='Start Quad', pos=(20,30))
self.Bind(wx.EVT_LEFT_DOWN, self.start_quad_event(), cbtn)
self.Show(True)
def start_quad_event(self):
dlg = wx.MessageDialog(self, "Test", "ABC", wx.YES_NO | wx.ICON_QUESTION)
dlg.ShowModal()
if __name__ == '__main__':
app = wx.App()
qd = QuadDash(None, title='QuadCopter Dashboard')
app.MainLoop()
答案 0 :(得分:1)
违规行是:
self.Bind(wx.EVT_LEFT_DOWN, self.start_quad_event(), cbtn)
您实际上是致电start_quad_event()
并将结果传递给bind()
。
正确的行是:
self.Bind(wx.EVT_LEFT_DOWN, self.start_quad_event, cbtn)
注意:没有括号。实际上,您将函数传递给bind()
。