GUI-Elemente sofort zeichen / draw now

Plattformunabhängige GUIs mit wxWidgets.
Antworten
benst
User
Beiträge: 1
Registriert: Montag 10. Februar 2020, 20:30

Montag 10. Februar 2020, 20:42

Hallo zusammen,

kann mir jemand sagen, wie ich GUI-Element sofort update/neuzeichne?

Ich habe eine GUI erstellt. Beim Klick auf ein QPushButton werden Berechnungen angestellt, welche eine gewisse Zeit benötigen. Den aktuellen Status würde ich gerne durch die Hintergrundfarbe von dem Button darstellen. Dazu habe ich eine Funktion der folgenden Form erstellt:

Code: Alles auswählen

def run(self):
	try:
		self.pb_run.setStyleSheet("background-color:yellow;")
		do_something()
		self.pb_run.setStyleSheet("background-color:green;")
	except Exception as e:
		print_ex(e)
		self.pb_run.setStyleSheet("background-color:red;")
Während der Berechnung soll das Button gelb sein, nach Abschluss der Berechnung grün und falls ein Fehler auftritt soll es rot sein.
Prinzipiell funktioniert es auch, aber während der Berechnung wird die Darstellung vom Button nicht aktualisiert.
Deshalb bräuchte ich einen Befehl wie "drawnow" (bei Matlab).
Bei Google habe ich bisher nicht die passenden Suchbegriffe eingegeben, deshalb bin ich noch nicht fündig geworden. Hat jemand einen Tipp für mich?

Vielen Dank und viele Grüße
Ben
__deets__
User
Beiträge: 8268
Registriert: Mittwoch 14. Oktober 2015, 14:29

Montag 10. Februar 2020, 23:34

Es gibt da verschiedene Lösungen, die unmittelbarste ist wahrscheinlich https://doc.qt.io/qt-5/qcoreapplication ... ssEvents-1
Antworten