Предположим, у меня есть большая программа, выполнение которой занимает некоторое время, когда она запускается, я обнаружил, что какой-то параметр задан неправильно, поэтому я хочу остановить его.Вместо того, чтобы завершить программу полностью, я хочу, чтобы текущие вычисления были остановлены, но wx.Frame все еще отображается.Является ли это возможным?Ниже приведен пример кода:
import wx
import time
class Test(wx.Frame):
def __init__(self, title):
super().__init__(None, title=title)
self.panel = wx.Panel(self)
self.initUI()
self.Centre()
def initUI(self):
vbox = wx.BoxSizer(wx.VERTICAL)
button1 = wx.Button(self.panel, label="START Calculation")
button1.Bind(wx.EVT_BUTTON, self.start_test)
button2 = wx.Button(self.panel, label="STOP Calculation")
button2.Bind(wx.EVT_BUTTON, self.stop_test)
vbox.Add(button1, 0, wx.ALL, 5)
vbox.Add(button2, 0, wx.ALL, 5)
self.panel.SetSizer(vbox)
def start_test(self, e):
for i in range(20000):
print("Program is running...")
time.sleep(5)
def stop_test(self, e):
print("How do I stop the test when click this button?")
if __name__ == '__main__':
app = wx.App()
Test("A large program").Show()
app.MainLoop()
Как показано в программе, когда я нажимаю кнопку запуска, программа запускается.Я надеюсь, что смогу остановить программу, но все равно останусь в окне приложения. На данный момент, когда я нажимаю кнопку запуска, кнопка остановки даже не активируется.Можно ли достичь цели, которую я хочу?