Qt: Tab-Widget Hintegrundfarbe

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
jgl
Establishment
Beiträge: 109
Registriert: 08.04.2009, 08:58

Qt: Tab-Widget Hintegrundfarbe

Beitrag 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.
Zuletzt geändert von jgl am 20.08.2010, 12:45, insgesamt 1-mal geändert.
Alexander Kornrumpf
Moderator
Beiträge: 2110
Registriert: 25.02.2009, 13:37

Re: Qt: Tab-Widget Hintegrdunfarbe

Beitrag von Alexander Kornrumpf »

[x] verschoben
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Qt: Tab-Widget Hintegrundfarbe

Beitrag 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
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
jgl
Establishment
Beiträge: 109
Registriert: 08.04.2009, 08:58

Re: Qt: Tab-Widget Hintegrundfarbe

Beitrag 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. :(
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Qt: Tab-Widget Hintegrundfarbe

Beitrag 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
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
jgl
Establishment
Beiträge: 109
Registriert: 08.04.2009, 08:58

Re: Qt: Tab-Widget Hintegrundfarbe

Beitrag 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....
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Qt: Tab-Widget Hintegrundfarbe

Beitrag von Matthias Gubisch »

Nur zur Info:
QPalette::Background ist obsolete
wurde ersetzt durch QPalette::Window
Zuletzt geändert von Matthias Gubisch am 27.08.2010, 11:40, insgesamt 1-mal geändert.
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Matthias Gubisch
Establishment
Beiträge: 470
Registriert: 01.03.2009, 19:09

Re: Qt: Tab-Widget Hintegrundfarbe

Beitrag 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
Bevor man den Kopf schüttelt, sollte man sich vergewissern einen zu haben
Benutzeravatar
jgl
Establishment
Beiträge: 109
Registriert: 08.04.2009, 08:58

Re: Qt: Tab-Widget Hintegrundfarbe

Beitrag 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.
Antworten