Ich habe ein Panel in WxPython, wo ich eine Schaltfläche enable monitor
nehmen möchte und wenn Sie auf eine Schleife der unten starten, aber auch wieder die GUI frei und aktualisieren Sie die Schaltfläche Label auf disable monitor
. Sobald Sie auf disable
klicken, wird die Schleife vollständig gestoppt.Looping in der GUI
Ich habe mir threading
angesehen, aber ich bin mir nicht sicher, ob ich das in diesem Fall tun sollte?
Die gesamte Schleife läuft innerhalb einer def startStop(self)
Deklaration und wird innerhalb des wxPanels class
ausgeführt.
Ich bin über meinen Kopf hinweg, aber ich habe schon eine Weile mit dieser GUI herumgebastelt und würde es lieben, diese Lektion mit dem richtigen Weg abzuschließen. :)
Pseudo-Code:
while zonesToMonitor != []:
time.sleep(int(self.tc_CheckInterval.Value))
j = 0
for i in zonesToMonitor:
maxVOL = maxVolPerZone[j]
urllib.urlopen("http://" + ip_address + ":" + self.tc_serverPort.Value +"/data/rendererData?data=R::" + wx.FindWindowByLabel(i).Label).read()
INFO = urllib.urlopen("http://" + ip_address + ":" + self.tc_serverPort.Value +"/data/rendererAction?data=class").read()
curTime = datetime.datetime.now()
curTime = curTime.strftime("%H:%M")
if self.ck_QuietHours.Value == True:
quietStartHr = self.tc_quietHr.Value
quietEndHr = self.tc_quietHrStop.Value
quietVol = self.tc_QuietVol.Value
if (curTime > quietStartHr) and (curTime < quietEndHr):
print "In quiet hours..."
maxVOL = quietVol
if self.ck_MuteHours.Value == True:
muteStartHr = self.tc_MuteHr.Value
muteEndHr = self.tc_MuteHrStop.Value
if (curTime > muteStartHr) and (curTime < muteEndHr):
print "In mute time..."
maxVOL = 0
OUTPUT = re.findall('(?<=VOLUME::).*?(?=_\|_)', INFO)
if maxVOL == '':
maxVOL = 0
if OUTPUT == '':
OUTPUT = 0
OUTPUT = map(int, OUTPUT)
if OUTPUT > int(maxVOL):
url = "http://" + ip_address + ":" + self.tc_serverPort.Value + "/data/rendererAction?data=VOLUME::" + str(maxVOL)
urllib.urlopen(url).read()
j += 1
Wow - danke - ich endlich, endlich, verstehen, wie diese Arbeit nach unzähligen Stunden aus dem Internet von Rippen Beispielcode zu machen. Danke, dass du es einfach gehalten hast. :) – chow