BaseBallBatBoy
Erfahrenes Mitglied
Hi!
Ich hab ein kleines GUI erstellt mit zwei Buttons. Beim Klick auf Start soll das Programm einen while loop durchlaufen, welcher mit dem Stop Button beendet werden kann (das Ganze ist erst ein Test. Später kommt dann auch Sinnvolleres in den loop..).
GUI.py
Also, hat jemand eine Idee wie ich beim Klick auf den Stop Button aus dem 'endless' loop rauskomme? Ich hab nämlich das gefühl, dass der loop zur überlastung führt und das Programm danach auf gar keine Eingaben mehr reagiert.. Ich brauche aber leider einen endless loop der nur auf eine Useraktion beendet werden soll.
Ich hab ein kleines GUI erstellt mit zwei Buttons. Beim Klick auf Start soll das Programm einen while loop durchlaufen, welcher mit dem Stop Button beendet werden kann (das Ganze ist erst ein Test. Später kommt dann auch Sinnvolleres in den loop..).
GUI.py
PHP:
import wx, re, os, time
#global vars
running = True
class MyFrame(wx.Frame):
def __init__(self, parent, id, title, pos=wx.DefaultPosition, size=(280, 200)):
wx.Frame.__init__(self, parent, id, title, pos, size)
self.CreateStatusBar()
panel = wx.Panel(self)
sizer = wx.GridBagSizer(vgap=5, hgap=5)
bt = wx.Button(panel, 0, "Start", wx.DefaultPosition, wx.DefaultSize)
sizer.Add(bt, pos=(1,1), span=(1,2), flag=wx.EXPAND)
bt = wx.Button(panel, 1, "Stop", wx.DefaultPosition, wx.DefaultSize)
sizer.Add(bt, pos=(1,3), span=(1,2), flag=wx.EXPAND)
panel.SetSizer(sizer)
panel.Layout()
self.Bind(wx.EVT_BUTTON, self.OnStart, id=0)
self.Bind(wx.EVT_BUTTON, self.OnStop, id=1)
def OnStart(self, event):
self.SetStatusText("Beginning loop")
global running
while running:
print "Hallo"
def OnStop(self, event):
global running
running = False
self.SetStatusText("Job has been aborted")
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(parent=None, id=-1, title="simple gui")
self.SetTopWindow(frame)
frame.Show(True)
return True
if __name__ == "__main__":
app = MyApp(0)
app.MainLoop()
Also, hat jemand eine Idee wie ich beim Klick auf den Stop Button aus dem 'endless' loop rauskomme? Ich hab nämlich das gefühl, dass der loop zur überlastung führt und das Programm danach auf gar keine Eingaben mehr reagiert.. Ich brauche aber leider einen endless loop der nur auf eine Useraktion beendet werden soll.