Erhöhung der Performance durch QPixmapCache, QCache ???
-
QtNoob2008
- Beiträge: 54
- Registriert: 10. April 2008 08:27
Erhöhung der Performance durch QPixmapCache, QCache ???
Hallo,
ich habe eine Frage bzgl. der oben genannten Klassen. Ich verwende viele Bilder in meiner Applikation (*.png) die sich in einer Ressource befinden und per Stylesheet in die Applikation, bzw. den Widgets als "backgroud-image" zugewiesen werden.
Die Anwendung soll auf einem PC aber auch auf einem Embedded System (mit Touchscreen) verwendet werden.
Besitzen die genannten Klassen einen Performance Vorteil (z.B. Erhöhung der Darstellungsgeschwindkeit) gegenüber der Variante "Stylesheet/Ressource"die ich jetzt verwende. Gibt es performantere Möglichkeiten?? Hat jmd. Erfahrung in diesem Bereich?
Vielen Dank im voraus !!
Gruß QtNoob2008
ich habe eine Frage bzgl. der oben genannten Klassen. Ich verwende viele Bilder in meiner Applikation (*.png) die sich in einer Ressource befinden und per Stylesheet in die Applikation, bzw. den Widgets als "backgroud-image" zugewiesen werden.
Die Anwendung soll auf einem PC aber auch auf einem Embedded System (mit Touchscreen) verwendet werden.
Besitzen die genannten Klassen einen Performance Vorteil (z.B. Erhöhung der Darstellungsgeschwindkeit) gegenüber der Variante "Stylesheet/Ressource"die ich jetzt verwende. Gibt es performantere Möglichkeiten?? Hat jmd. Erfahrung in diesem Bereich?
Vielen Dank im voraus !!
Gruß QtNoob2008
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ein Cache lohnt sich nur wenn die Bilder mehr als n mal geladen werden. Wenn Du sie also nur einmal lädst lohnt es sich überhaupt nicht bzw. verbraucht nur Speicher. Der Cache ermöglicht nur, dass Du ein Bild nicht von Platte laden und umwandeln musst - mehr nicht.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
QtNoob2008
- Beiträge: 54
- Registriert: 10. April 2008 08:27
Hi Christian81,
Danke für die schnelle Antwort !!!
Also würde es wohl für meinen Fall nix bringen!
Die Bilder werden nur einmal(!) beim Start geladen über "setStyleSheet()". Der Style wird auch nicht zur Laufzeit umgestellt oder so...
Dabei bekommt z.B. die Klasse "QPushButton" ein Bild zugewiesen was z.B. auf allen Buttons (also n-mal) verwendet wird. Zudem wird das Hintergrundbild z.B. beim "hover"-Effekt verändert. Weißt du vielleicht ob die Anwendung auf die lokal liegenden Ressource zugreift oder befindet sich diese im Speicher ?
Gruß QtNoob2008
Danke für die schnelle Antwort !!!
Also würde es wohl für meinen Fall nix bringen!
Die Bilder werden nur einmal(!) beim Start geladen über "setStyleSheet()". Der Style wird auch nicht zur Laufzeit umgestellt oder so...
Dabei bekommt z.B. die Klasse "QPushButton" ein Bild zugewiesen was z.B. auf allen Buttons (also n-mal) verwendet wird. Zudem wird das Hintergrundbild z.B. beim "hover"-Effekt verändert. Weißt du vielleicht ob die Anwendung auf die lokal liegenden Ressource zugreift oder befindet sich diese im Speicher ?
Gruß QtNoob2008
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Die Resource wird sich im Speicher befinden. Wenn das Bild dort allerdings als z.B. png vorliegt muss es bei jedem Setzen nach QImage/QPixmap konvertiert werden. Kommt natürlich darauf an wie oft das nötig ist und wie viel Speicher die Bilder benötigen - aber da könnte es sich ggf. lohnen einen QPixmapCache zu benutzen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
QtNoob2008
- Beiträge: 54
- Registriert: 10. April 2008 08:27
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
QtNoob2008
- Beiträge: 54
- Registriert: 10. April 2008 08:27
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
QtNoob2008
- Beiträge: 54
- Registriert: 10. April 2008 08:27
ja genau, im Stylesheet lege ich Fest wie die QPushButtons aussehen sollen. Also z.B. ein "*.png" als background für alle QPushButton. Im Stylesheet wird angegeben wo sich die Bilder befinden url(:/Ressourcendatei.qss)...
Die derzeitige Realisierung mit "css" würde ich verwerfen
, wenn QPixmapCache oder QCache performanter ist.
Habe gerade mal nach QWidget::backgroundRole () geschaut. Verstehe da nun gar nicht wie ich das für meine Zwecke verwenden könnte ...

Die derzeitige Realisierung mit "css" würde ich verwerfen
Habe gerade mal nach QWidget::backgroundRole () geschaut. Verstehe da nun gar nicht wie ich das für meine Zwecke verwenden könnte ...
Kannst du mir das bitte genauer Erklären ?QPalette::ColorRole QWidget::backgroundRole () const
Returns the background role of the widget.
The background role defines the brush from the widget's palette that is used to render the background.