QTextBrowser-Ausgabe auf GUI sekündlich aktualisieren
Verfasst: Dienstag 30. November 2021, 19:02
Guten Abend,
ich habe ein Projekt, bei welchem ich nicht weiter komme, da ich einerseits Neuling bin und andererseits wohl einen Denkfehler habe. Ich hoffe mir kann da jemand helfen...
Ich habe mit dem Qt-Designer eine GUI erstellt und folgendermaßen Strukturiert.
class xyz (QMainWindow):
def __init__(self):
super(xyz, self).__init__()
self.button = self.findChild(QPushButton, "Button_1")
self.button.clicked.connect(self.def1)
def 1(self):
blabla
def TextBrowserAnzeige( ):
TextBrowser.clear()
TextBrowser_Sensor1.append(q.sensor1.get())
time.sleep(1)
app = QApplication(sys.argv)
UIWomdows = UI()
app.exec_()
Die GUI und der Rest des Programms funktioniert soweit ich das möchte. Nun wollte ich mit dem QTextBrowser Sensordaten anzeigen, welche ich jede Sekunde erhalte (String) und auf dem QTextbrowser ausgeben. Der vorherige Wert soll dabei immer gelöscht werden, sodass nur der aktuelle Wert angezeigt wird.
Das Programm ist etwas Umfangreicher und ich habe diverse Threads laufen.
Das Problem:
Wenn ich oben bei der GUI die Zeile: self.TextBrowser_Sensor1.append(q.sensor1.get()) einlese, wird es nur einmal beim Programmstart aktualisiert und bleibt stehen. Das Verstehe ich auch. Ich wollte nun eine eigene Funktion nutzen, welche ich Sekündlich aufrufe (z.B als eigener Thread oder mit dem Scheduler), nach dem Motto:
def TextBrowserAnzeige( ):
TextBrowser.clear() #Alten Wert löschen
TextBrowser_Sensor1.append(q.sensor1.get()) #Neuen Wert anzeigen für ca. 1 Sekunde
time.sleep(1)
Aber ich finde irgendwie nicht die richtige Syntax, um das lauffähig zu bekommen. Irgendwie brauche ich die Verknüpfung zur GUI (__init__).
Bin für jeden Tipp oder Idee dankbar. Danke schonmal an alle!!!
ich habe ein Projekt, bei welchem ich nicht weiter komme, da ich einerseits Neuling bin und andererseits wohl einen Denkfehler habe. Ich hoffe mir kann da jemand helfen...
Ich habe mit dem Qt-Designer eine GUI erstellt und folgendermaßen Strukturiert.
class xyz (QMainWindow):
def __init__(self):
super(xyz, self).__init__()
self.button = self.findChild(QPushButton, "Button_1")
self.button.clicked.connect(self.def1)
def 1(self):
blabla
def TextBrowserAnzeige( ):
TextBrowser.clear()
TextBrowser_Sensor1.append(q.sensor1.get())
time.sleep(1)
app = QApplication(sys.argv)
UIWomdows = UI()
app.exec_()
Die GUI und der Rest des Programms funktioniert soweit ich das möchte. Nun wollte ich mit dem QTextBrowser Sensordaten anzeigen, welche ich jede Sekunde erhalte (String) und auf dem QTextbrowser ausgeben. Der vorherige Wert soll dabei immer gelöscht werden, sodass nur der aktuelle Wert angezeigt wird.
Das Programm ist etwas Umfangreicher und ich habe diverse Threads laufen.
Das Problem:
Wenn ich oben bei der GUI die Zeile: self.TextBrowser_Sensor1.append(q.sensor1.get()) einlese, wird es nur einmal beim Programmstart aktualisiert und bleibt stehen. Das Verstehe ich auch. Ich wollte nun eine eigene Funktion nutzen, welche ich Sekündlich aufrufe (z.B als eigener Thread oder mit dem Scheduler), nach dem Motto:
def TextBrowserAnzeige( ):
TextBrowser.clear() #Alten Wert löschen
TextBrowser_Sensor1.append(q.sensor1.get()) #Neuen Wert anzeigen für ca. 1 Sekunde
time.sleep(1)
Aber ich finde irgendwie nicht die richtige Syntax, um das lauffähig zu bekommen. Irgendwie brauche ich die Verknüpfung zur GUI (__init__).
Bin für jeden Tipp oder Idee dankbar. Danke schonmal an alle!!!