Ich mache sehr grundlegende PyQt, also bitte entschuldigen Sie die schlechte Optimierung und fehlende Klassenorientierung.LCD-Display möchte die Eingabe nicht aktualisieren (zeige nicht an, was ich sage, um es anzuzeigen)
Ich versuche, einen Timer in PyQt zu machen. Ich habe 3 LCDs auf der Benutzeroberfläche, eine Stunde LCD (hourLcd), eine Minute LCD (minuteLcd) und einem zweiten LCD (secondLcd)
import sys
import time
from PyQt4 import QtGui
from PyQt4 import uic
app = QtGui.QApplication(sys.argv)
#window = QtGui.QMainWindow()
ui = uic.loadUi("clock.ui")
#ui.setupUi(Window)
ui.show()
Dies stellt PyQt4
def hourUp():
count = ui.hourLcd.value()
if count < 24:
count = count + 1
ui.hourLcd.display(count)
def hourDown():
count = ui.hourLcd.value()
if count > 0:
count = count - 1
ui.hourLcd.display(count)
def minuteUp():
count = ui.minuteLcd.value()
if count < 59:
count = count + 1
ui.minuteLcd.display(count)
def minuteDown():
count = ui.minuteLcd.value()
if count > 0:
count = count - 1
ui.minuteLcd.display(count)
def secondUp():
count = ui.secondLcd.value()
if count < 59:
count = count + 1
ui.secondLcd.display(count)
def secondDown():
count = ui.secondLcd.value()
if count > 0:
count = count - 1
ui.secondLcd.display(count)
Dies sind die Funktionen um die UI-Schaltflächen mit Aktionen zu verbinden. z.B. Wenn Sie die Taste auf der Benutzeroberfläche drücken, wird eine zum Zähler hinzugefügt.
def start(stop):
loop = False
secondcounter = ui.secondLcd.value()
minutecounter = ui.minuteLcd.value()
hourcounter = ui.hourLcd.value()
while loop == False:
time.sleep(1)
secondcounter = secondcounter - 1
print(secondcounter)
ui.secondLcd.display(secondcounter) ****
if secondcounter == 0:
if minutecounter != 0:
minutecounter = minutecounter - 1
print(minutecounter)
ui.minuteLcd.display(minutecounter) ****
secondcounter = secondcounter + 59
ui.secondLcd.display(secondcounter) ****
if secondcounter == 0:
if minutecounter == 0:
if hourcounter == 0:
loop = True
if minutecounter == 0:
if secondcounter == 0:
if hourcounter != 0:
hourcounter = hourcounter - 1
print(hourcounter)
ui.hourLcd.display(hourcounter) ****
minutecounter = minutecounter + 59
print(minutecounter)
ui.minuteLcd.display(minutecounter) ****
secondcounter = secondcounter + 59
print(secondcounter)
ui.secondLcd.display(secondcounter) ****
else:
continue
Der Algorithmus für die Ausführung des Timers.
Im Grunde funktioniert der Code alles perfekt. Es zählt von einer gegebenen Zeit auf 0 herunter, aber ich habe Probleme, die Ausdrucke des Codes mit der UI zu verbinden, speziell die Zeile mit den Sternen daneben. Ich verstehe nicht, warum der Code es ablehnt, die LCD - Ziffern zu aktualisieren, wenn sich die Zähler ändern (z. B. counter = counter - 1), wie es in den anderen Funktionen funktioniert.
Danke !!