Seite 1 von 1

Verlauf im Style

Verfasst: 14. September 2006 15:27
von motualf
Servus,

ist es möglich einen Farbverlauf für das Hauptfenster, abhängig von dessen aktueller Größe in einem Style zu definieren (er soll also mit dem Fenster "skalieren")?

Gruß

motualf (Martin Gmür)

Verfasst: 20. September 2006 16:54
von FlorianBecker
Och, bestimmt.

Beschreibe bitte mal, was du "genau" vor hast mit allen Informationen, die du dazu reichen kannst. Vielleicht Anfänge oder oder.

Verfasst: 22. September 2006 15:39
von motualf
Servus,

ich bin von dem Norwegian Wood Beispiel von QT ausgegangen und wollte meinen eigenen Stil

definieren. Bei Norwegian Wood wird ja ein endloses Pattern aus Pixmaps als

Fensterhintergrund verwendet und der Palette zugeordnet. Ich würde gerne einen

Radialgradient verwenden um einen Verlauf zu generieren. Das klappt so weit auch.

Code: Alles auswählen

void HimaStyle::polish(QPalette &palette)
{
  //..

  QGradient linearBackgroundGrad = QLinearGradient (QPointF(0, 0), QPointF(1024, 0));
  linearBackgroundGrad.setColorAt(0, Qt::white)
  linearBackgroundGrad.setColorAt(1, Qt::red);
  
  QBrush backgroundBrush = QBrush(linearBackgroundGrad);

  palette.setBrush(QPalette::Window, backgroundBrush);
	
}
Wenn ich das Fenster dann aber skaliere bleibt der Radialgradient konstant - logisch da

Code: Alles auswählen

polish(QPalette &palette)
ja nur einmal aufgerufen wird.

Bei Buttons kann man aber über drawControl einen Verlauf abhängig von Weite und Höhe des

Buttons definieren und genau das würde ich gerne beim Hintergrund des Hauptfensters (in diesem Fall QDialog) hinbekommen.

Das Ziel ist es wirklich nur am Style zu arbeiten, nicht an der WidgetGallery. D.h. irgendwo

müsste man die Weite des Hauptfenster herbekommen und die Möglichkeit drüber zu zeichnen

oder die QPalette::Window zu verändern.



Gruß Martin Gmür

Verfasst: 22. September 2006 16:19
von Sym
Hi,

alternativ kannst Du Dir auch den ArthurStyle von Qt anschauen. Dort wird ein grauer Farbverlauf gesetzt.