Ermitteln, wann ein neues StyleSheet abgearbeitet wurde

Alles rund um die Programmierung mit Qt
Antworten
Espresso
Beiträge: 49
Registriert: 10. September 2009 13:55

Ermitteln, wann ein neues StyleSheet abgearbeitet wurde

Beitrag von Espresso »

Hallo,
ich muss ermitteln, wann das neue StyleSheet vollständig verarbeitet wurde, erst danach dürfen Tasteneingaben wieder angenommen werden.

Der uP des Targets ist etwas langsam, das StyleSheet etwas groß, und die Kombination führt dazu, das der Benutzer schon wieder Tasten drückt, während Qt sich noch mit dem laden und bearbeiten des neuen StyleSheets beschäftigt. Irgendwann ist das fertig, und dann werden die Tastendrücke aus der Queue plötlzlich abgearbeitet, was komisch ankommt.

somit möchte ich ermitteln, wann das StyleSheet vollständig durchgearbeitet wurde,

Code: Alles auswählen

qApp->setStyleSheet(myStyleSheetString);

die Events StyleChange oder Polish melden nichts zurück.
bool dgTest:event(QEvent * e )
{
  int res = QWidget::event( e );
  if( e->type() == QEvent::StyleChange ) {
    bool bChanged = true; // hier kommen wir nicht hin
  }

  if( e->type() == QEvent::Polish ) {
    bool bChanged = true; // hier kommen wir nicht hin
  }
Hat jemand eine Idee, wie man die Tastatureingabe während des Stylesheet-Laden verhindern kann?

Danke für Tipps,

Gruß Tom
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Ermitteln, wann ein neues StyleSheet abgearbeitet wurde

Beitrag von Christian81 »

QEvent::StyleChange wird auf alle Fälle verschickt. Aber das wird direkt für jedes Widget einzeln verschickt sobald das Widget das neue Style bekommen hat.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Espresso
Beiträge: 49
Registriert: 10. September 2009 13:55

Re: Ermitteln, wann ein neues StyleSheet abgearbeitet wurde

Beitrag von Espresso »

stimmt, QEvent::StyleChange wird verschickt,
war bei uns ausgeblendet für Laufzeitoptimierung auf dem Target.
Danke an Christian,
Gruß Tom
Antworten