wxPython事件在启动时启动

2024-06-21 20:25:20 发布

您现在位置:Python中文网/ 问答频道 /正文

<> P>我是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()

Tags: 代码selfeventtitleinitdef事件按钮
1条回答
网友
1楼 · 发布于 2024-06-21 20:25:20

冒犯的底线是:

self.Bind(wx.EVT_LEFT_DOWN, self.start_quad_event(), cbtn)

您实际上调用了start_quad_event(),并将结果传递给bind()。在

正确的行是:

^{pr2}$

注:无括号。这里您实际上将函数传递给bind()。在

相关问题 更多 >