gpt4 book ai didi

python - wxPython 事件在启动时启动

转载 作者:太空宇宙 更新时间:2023-11-03 18:30:43 25 4
gpt4 key购买 nike

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

最佳答案

有问题的行是:

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()

关于python - wxPython 事件在启动时启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22423316/

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