如何用python实现在wxpython的使用中,做到触发一个按键时间并行两个函数A和B,当发现A结束时B也结束
时间: 2023-06-04 19:05:45 浏览: 101
你好!针对你的问题,以下是一个代码示例,希望可以帮到你:
```python
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
super(MyFrame, self).__init__(parent, title=title, size=(300, 200))
self.InitUI()
def InitUI(self):
pnl = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
self.btn = wx.Button(pnl, label="Start")
self.btn.Bind(wx.EVT_BUTTON, self.OnStart)
vbox.Add(self.btn, proportion=1, flag=wx.EXPAND|wx.ALL, border=10)
pnl.SetSizer(vbox)
def OnStart(self, event):
event.Skip()
wx.CallAfter(self.DoA)
wx.CallAfter(self.DoB)
def DoA(self):
# 这里是函数A的代码
pass
def DoB(self):
# 这里是函数B的代码
pass
if __name__ == '__main__':
app = wx.App()
frame = MyFrame(None, title='Parallel Functions')
frame.Show(True)
app.MainLoop()
```
这个代码中,我们利用了wxPython的 `wx.CallAfter()` 方法实现了在点击按钮后同时调用函数A和函数B,并让它们同时运行。需要注意的是,在函数A和函数B的代码中不要有任何阻塞操作,以免影响程序的运行。希望这个解答对你有帮助,如有疑问欢迎随时提出!
阅读全文