2011-05-05 79 views
2

Qt的QTabBar具有設置每個選項卡上文本顏色的功能。自定義Qt庫類

我想我的應用程序能夠設置每個選項卡的背景顏色。從我所看到的情況來看,QTabBar不容易修改(例如通過繼承或更改屬性)來執行此操作。

這讓我可以選擇將QTabBar代碼批量複製到我的(GPL)應用程序中,然後修改類名稱(即MyQTabBar),然後添加我的功能。這是首選的方法,還是有更好的方法?

回答

1

絕對有更好的方法:)你應該能夠使用樣式表做你想做的。 This article涵蓋了一些QTabWidget,其中包含QTabBar

+0

謝謝你回覆:)你確定我可以用樣式表設置單獨的標籤顏色嗎?我認爲這是不可能的,因爲有每個選項卡的方法,如QTabBar :: setTabTextColor。 – Painting1 2011-05-05 02:27:48

+0

對不起。我沒有注意到你想以不同的方式爲每個標籤着色。使用樣式表,您將被限制爲基於以下僞狀態的樣式選項卡。:only-one,:first,:last,:middle,:previous,selected,:next-selected,:selected,:top,: left::right,:bottom – 2011-05-05 03:34:15

+0

如果您仔細研究源代碼,您可能會找到一種方法來通過繼承QTabBar並重寫一些虛擬函數(如paintEvent())來自定義選項卡顏色。 – 2011-05-05 04:40:04