2010-02-19 194 views
3

使用Qt樣式表,是否可以爲QTabBar中具有4個或更多選項卡的每個選項卡設置不同的背景色?使用樣式表更改索引QTabBar選項卡的背景

我的Qt應用程序在菜單欄下有6個選項卡。我想使用樣式表將它們的背景顏色更改爲6種不同的顏色。

2的問題出現在我的方式是站在:

  • 我只能使用純樣式表語法(所以爲什麼我說「4樣式的「第一」,「中」,和「最後一個」標籤或更多「選項卡)。

  • 我不認爲單個選項卡是我可以訪問的QTabBar的子控件。我的想法是,我可以將一個屬性附加到我可以在樣式表中引用的每個子選項卡。

例如:

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

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

任何幫助將非常感激。謝謝。

回答

5

單個選項卡是結構而不是對象。這些結構被用於繪畫。有關更多詳細信息,請參閱Qt source

我已經有了一個實驗,我找不到一種方法來訪問直接索引,就​​像你指出的那樣。爲了您的參考,我嘗試使用諸如文本,工具提示,whatsThis之類的屬性,但不幸從樣式表中訪問它們中的任何一個。

恐怕我不認爲你想要做什麼是可能的,沒有自己的子類化和修改繪畫事件。

+0

感謝您的回覆。我的解決方法是在選項卡上使用不同的彩色圖標。 – Robin 2010-08-02 13:16:09