Ok, dies ist eine bearbeitete Version meines früheren Beitrags. Ich versuche, eine digitale Uhr auf ein Home-Fenster zu platzieren. Ich habe Schwierigkeiten, den Wert zu aktualisieren. Ich sah ein Tutorial 1, das eine Methode mit @pyqtSlot() in einer anderen Klasse aufgerufen hat, aber weil ich in der Hauptfensterklasse arbeite, konnte ich dies nicht aufrufen und die Uhr erschien gar nicht. Der folgende Code unten bringt die aktuelle Zeit, aber die Uhr wird nicht aktualisiert:Probleme beim Aktualisieren der digitalen Uhr Widget in PyQt4 - Aufruf von Slot und Signal
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
class Window(QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.setGeometry(50,50,500,300)
self.home()
def home(self):
lcdNumber = QLCDNumber(self)
timer = QTimer()
lcdNumber.setDigitCount(8)
self.showTime(lcdNumber)
lcdNumber.connect(timer,SIGNAL("timeout()"),lcdNumber,SLOT("showTime()"))
timer.start(1000)
self.show()
@pyqtSlot()
def showTime(self,lcdNumber):
lcdNumber.display(QTime.currentTime().toString("hh:mm:ss"))
def run():
app=QApplication(sys.argv)
GUI = Window()
sys.exit(app.exec_())
run()
Ihre Lösung hier ist völlig richtig - ich würde es sicherlich nicht als "Umgehen" beschreiben. Der Grund, warum es funktioniert (im Vergleich zum ursprünglichen Beispiel), ist, weil es Verweise auf "LCD" und "Timer" enthält. Es ist auch gut, dass Sie alte Signal- und Slot-Verbindungen (die sehr fehleranfällig sein können) vermieden haben. – ekhumoro
@ekhumoro Vielen Dank für Ihren Kommentar, dieser Ansatz scheint auch viel einfacher, derjenige, nach dem ich gefragt habe. – alkey