Eigenen Skin zeichen
Eigenen Skin zeichen
Hi,
Derzeit überschreibe ich bei einem Programm das paintEvent um einen eigenen "Skin" zu bekommen; für ein eigenes QStyle ist es zu unspektakulär (nur 3 Buttons die anders aussehen als default). Doch mein Problem ist die Titlebar welche ich zuerst so realisierte, dass ich einfach ein 1*24 Pixel großes Bild hatte und dieses in einer Schleife über die gesamte Breite zeichne. Allerdings ist das ganze beim resize ziemlich lahm. Also dachte ich mir dieses Bild beim starten des Programms gleich mit 1024*24 zu initialisieren und im paintEvent einfach nur einmal zu zeichnen. Doch auch mit dieser Methode ruckelt das resizen des Fensters.
Kennt jemand eine effizientere Methode?
Mfg,
Alex
Derzeit überschreibe ich bei einem Programm das paintEvent um einen eigenen "Skin" zu bekommen; für ein eigenes QStyle ist es zu unspektakulär (nur 3 Buttons die anders aussehen als default). Doch mein Problem ist die Titlebar welche ich zuerst so realisierte, dass ich einfach ein 1*24 Pixel großes Bild hatte und dieses in einer Schleife über die gesamte Breite zeichne. Allerdings ist das ganze beim resize ziemlich lahm. Also dachte ich mir dieses Bild beim starten des Programms gleich mit 1024*24 zu initialisieren und im paintEvent einfach nur einmal zu zeichnen. Doch auch mit dieser Methode ruckelt das resizen des Fensters.
Kennt jemand eine effizientere Methode?
Mfg,
Alex
Ich schlafe nur einmal die Woche 
Im Konstruktor:
paintEvent:
[/i]
Im Konstruktor:
Code: Alles auswählen
TitleBarLeft = QPixmap( ":/Data/Graphics/Style/titlebar_left.png" ).scaledToHeight( 24 );
TitleBarExtender = QPixmap( ":/Data/Graphics/Style/titlebar_ext.png" ).scaled( 512, 24 );
TitleBarRight = QPixmap( ":/Data/Graphics/Style/titlebar_right.png" ).scaledToHeight( 24 );
Code: Alles auswählen
painter.drawPixmap( 0, 0, TitleBarLeft );
painter.drawPixmap( TitleBarLeft.width(), 0, TitleBarExtender );
painter.drawPixmap( this->width() - TitleBarRight.width(), 0, TitleBarRight );
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Kannst Du das Pixmap nicht als Hintergrundpixmap von deinem Titlebar setzen? In Qt3 gab es die Funktion QWidget::SetBackroundMode() welche es erlaubte ein BackgroundPixmap zu setzen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung