Seite 1 von 1

Qt: Tab-Widget Hintegrundfarbe

Verfasst: 20.08.2010, 12:12
von jgl
Hallo,

ich haben eine Frage bezüglich des Qt-Frameworks. Vlt. kennt sich jemand hier damit aus.
Ich habe ein Dialog in dem ich ein QTabWidget palziert habe, mit 2 Tabs.
Was mich allerdings stört, ist das der Hintergrund des Tabwidgets, bzw. der einzelnen Tabs, weiß ist.
Finde ich hässlich und ich möchte gerne die Hintergrundfarbe des Dialoges haben.

Kann mir jemand helfen?

MfG JGL

Edit: Mist, falsches Sub-Forum!!! Sorry! Vlt kann das wer verschieben.

Re: Qt: Tab-Widget Hintegrdunfarbe

Verfasst: 20.08.2010, 12:17
von Alexander Kornrumpf
[x] verschoben

Re: Qt: Tab-Widget Hintegrundfarbe

Verfasst: 20.08.2010, 12:59
von Matthias Gubisch
Aus dem Gedaechtnis:

QTabWidget::setBackgroundRole(QPalatte(QColor color))

die Funktion sollte von QWidget geerbt werden :)

Wenns nicht passt sag bescheid dann kram ich heut Abend mal den alten Code raus

Gruss
Matthias

Re: Qt: Tab-Widget Hintegrundfarbe

Verfasst: 20.08.2010, 13:22
von jgl
Das hab ich auch schon probiert, leider ohne Erfolg.
Die von Dir vorgeschlagene Variante gibt einen Compile-Fehler aus:
Fehler 1 error C2664: 'QWidget::setBackgroundRole': Konvertierung des Parameters 1 von 'QPalette' in 'QPalette::ColorRole' nicht möglich
Auch wenn ich irgendeine "ColorRole" vergebe, dann bringt das keine Veränderung. :(

Re: Qt: Tab-Widget Hintegrundfarbe

Verfasst: 20.08.2010, 13:54
von Matthias Gubisch
Dass die Color Roles keine veraenderungen bringen ist schelcht
ich dachte das geht so...

das mit dem Compiler fehler war ein Fluechtigkeitsfehler von mir
Schau dir mal QPalette an, da hats funktionen um die Farbe einer bestimmten Color veraenderen zu koennen.

IIRC war das da irgendsowas in der Art

Also Palette aendern, zum testen nimmt man am besten AlternateBase und dann die ColorRole fuer den Background auf AlternateBase setzen

Ansonsten gaebs noch die Option ein StyleSheet zu verwenden
das hab ich persoenlich aber noch nie gemacht

Re: Qt: Tab-Widget Hintegrundfarbe

Verfasst: 20.08.2010, 14:24
von jgl
Okay, stimmt. Ich könnte auch die StyleSheets verwenden....
Aber das sieht irgendwie "Pfui" aus, und ich muss alle Farben extra angeben.....

Mist, auch sowas funktioniert nicht:

Code: Alles auswählen

QPalette palette = mDialogUi.tab_1->palette();
palette.setColor(QPalette::Background, QColor(QRgb(1000)));
mDialogUi.tab_1->setPalette(palette);
Naja, vlt. finde ich noch ne Lösung. Google spuckt paar Ergebnisse aus, aber die Lösungen bestanden dort alle per StyleSheet!
Und die Optik dieser fande ich nicht so gut.
Habe da auch nicht Lust stundenlang nach den besten Farben zu suchen....

Re: Qt: Tab-Widget Hintegrundfarbe

Verfasst: 20.08.2010, 15:01
von Matthias Gubisch
Nur zur Info:
QPalette::Background ist obsolete
wurde ersetzt durch QPalette::Window

Re: Qt: Tab-Widget Hintegrundfarbe

Verfasst: 27.08.2010, 11:39
von Matthias Gubisch
Hast du dein Problem inzwischen geloest?
Ich bin mittlerweile dazugekommen nochmal nachzuschauen und ich hab das damals so geloest:

tabWidget->setStyleSheet(QString::fromUtf8("background-color: rgba(255, 255, 255);

also im prinzip ueber stylesheets aber wenn man nur eine einzige Eigentschaft verandern will dann sollte man das ja durchaus so verwenden koennen.

Gruss
Matthias

Re: Qt: Tab-Widget Hintegrundfarbe

Verfasst: 27.08.2010, 11:47
von jgl
Ich habe es nun anders gelöst.
Ich habe nun das QTabWidgt rausgenommen, aber nicht wegen dem Problem des Hintergrundes, sondern weil es dort inhaltlich nicht gepasst hat.
Also ich habe nun mein Dialg etwas umgestaltet ;).
Danke trotzdem.