Frage

Mit Qt Sheets ist es möglich, eine andere Hintergrundfarbe für jede Registerkarte in einem QTabBar zu setzen, die 4 oder mehr Registerkarten?

Meine Qt-Anwendung verfügt über 6 Registerkarten unterhalb der Menüleiste. Ich mag ihre Hintergrundfarben zu 6 verschiedenen Farben Sheets ändern.

2 Ausgaben erscheinen mir im Weg zu stehen:

  • Ich kann nur Stil der "erster", "mittel" und "letzt" Tabs mit reiner Sheet Syntax (daher, warum ich "4 oder mehr" Tabs sagen).

  • Ich glaube nicht, die einzelnen Registerkarten sind Kind-Widgets des QTabBar, dass ich zugreifen kann. Die Idee ist, dass ich dann eine Eigenschaft für jedes Kind Tab anheften könnte, dass ich im Sheet verweisen könnte.

Zum Beispiel:

// Stylesheet
QTabBar::tab[index="3"] {
   background: blue;
}

// Code
QTabBar* bar = new QTabBar;
int index = bar->addTab("Tab 1");
QWidget* tab1; //= ????
tab1->setProperty("index", index);

Jede Hilfe wäre sehr geschätzt. Danke.

War es hilfreich?

Lösung

Die einzelnen Registerkarten sind structs eher als Objekte. Diese Strukturen werden dann verwendet, auf der Malerei. Sehen Sie sich die Qt Quelle mehr Einzelheiten.

Ich habe ein Experiment mit diesem hatte und ich kann nicht einen Weg finden, einen direkten Index zuzugreifen, wie Sie angegeben haben. Zu Ihrer Information habe ich versucht, Eigenschaften wie der Text, toolTip, Whatsthis konnte aber nicht den Zugang einer von ihnen von den Stylesheets verwenden, leider.

Ich fürchte, ich glaube nicht, was Sie tun möchten, möglich ist, ohne Subklassen und Modifizieren der Farbe Ereignisse selbst.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top