Hallo,
ich möchte in meinem Programm an einigen Stellen processEvents() aufrufen, damit die GUI-Elemente ohne Verzögerung (zu Ende) gezeichnet werden können.
Die Programmstruktur besteht im Augenblick aus einer QApplication, sowie einer Reihe von QMainWindows, welche teilweise weitere QMainWindows erzeugen/beinhalten (was wenn möglich auch so bleiben soll).
Wenn ich das richtig sehe, dann besitzt QMainWindow keine eigene Event-Loop, sämtliche Events laufen also in der EventLoop von QApplication, richtig ? Um per processEvents() darauf zugreifen zu können müsste ich also jeweils einen Pointer auf die zugrundeliegende QApplication an die QMainWindows übergeben.
Meine zweite Idee wäre, die QMainWindows durch Erben von QEventLoop mit eigenen EventLoops auszustatten. Ist das möglich bzw. überhaupt empfehlenswert ?
[gelöst] Eigene EventLoop für QMainWindow ?
[gelöst] Eigene EventLoop für QMainWindow ?
Zuletzt geändert von comer352l am 2. September 2007 16:43, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Abgesehen davon dass Du eine ziemlich verwirrende Vorstellung davon hast was eine Eventloop so macht und wofür sie nötig ist würde ich einfach mal sagen dass QApplication::processEvents() nicht umsonst eine statische Funktion ist...
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Aua, das "Static" war mir doch glatt entgangen...
Wie's aussieht, haben sich damit zumindest schon mal einige meiner Performance-Probleme erledigt...
Was mein Verständnis der Event-Loop angeht, hast du ebenfalls nicht ganz unrecht: zumindest die Abläufe hinter den Kulissen sind mir noch ein ziemliches Rätsel. Woher bzw. wie findet z.B. die statische Funktion processEvents() den Weg zu (richtigen !) Event-Loop ???
Danke schon mal !
Wie's aussieht, haben sich damit zumindest schon mal einige meiner Performance-Probleme erledigt...
Was mein Verständnis der Event-Loop angeht, hast du ebenfalls nicht ganz unrecht: zumindest die Abläufe hinter den Kulissen sind mir noch ein ziemliches Rätsel. Woher bzw. wie findet z.B. die statische Funktion processEvents() den Weg zu (richtigen !) Event-Loop ???
Danke schon mal !
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Mhh ok, das war mir so nicht klar. Ist aber bei genauerem Nachdenken eigentlich auch logisch...
Leider habe ich noch immer an einigen Stellen Probleme mit zu langsamer bzw. verzögerter GUI-Darstellung zu kämpfen...
Ich denke aber ich werde nochmal ausführlich die Suchfunktion benutzen und evtl. einen neuen Thread aufmachen.
Danke !
Leider habe ich noch immer an einigen Stellen Probleme mit zu langsamer bzw. verzögerter GUI-Darstellung zu kämpfen...
Ich denke aber ich werde nochmal ausführlich die Suchfunktion benutzen und evtl. einen neuen Thread aufmachen.
Danke !