Seite 1 von 1

Ermitteln, wann ein neues StyleSheet abgearbeitet wurde

Verfasst: 21. März 2018 14:11
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

Re: Ermitteln, wann ein neues StyleSheet abgearbeitet wurde

Verfasst: 21. März 2018 19:37
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.

Re: Ermitteln, wann ein neues StyleSheet abgearbeitet wurde

Verfasst: 22. März 2018 07:47
von Espresso
stimmt, QEvent::StyleChange wird verschickt,
war bei uns ausgeblendet für Laufzeitoptimierung auf dem Target.
Danke an Christian,
Gruß Tom