2017-08-09 57 views
2

我有一個QTabWidget裏面有兩個選項卡。我想設置兩個標籤的背景是透明的看到主窗口的顏色下的,但是當我設置如何在不影響內部的標籤/小部件的情況下設計QTabWidget?

QTabWidget *tabWidget = new QTabWidget(this); 
tabWidget-setStyleSheet("background-color: transparent;"); 

這讓我有標籤內的小部件的所有背景透明,而不是標籤本身。樣式表更改之前

專輯顯示:

enter image description here

變化後,

enter image description here

和我想要達到的。

enter image description here

,如果需要,我可以提供更多的代碼。提前致謝!

回答

1

樣式表應用於觸摸小部件及其所有子項。

目前你的風格定義

QTabWidget *tabWidget = new QTabWidget(this); 
tabWidget-setStyleSheet("background-color: transparent;"); 

說像「設置背景顏色爲所有小透明」。

...但你可以限制樣式表的適用性。

E.g.你可以說,這種風格定義應只適用於某些類的實例像QLabel:

QTabWidget *tabWidget = new QTabWidget(this); 
tabWidget-setStyleSheet("QLabel{ background-color: transparent; }"); 

還有更possibilietes定義更詳細的適用性: The Qt Style Sheet Syntax, Selector Types

有關你的情況是可能性的樣式定義的適用性限制於具有某些名稱的對象:

QTabWidget *tabWidget = new QTabWidget(this); 
tabWidget-setStyleSheet("QWidget#custom_tab, QWidget#templates_tab{" 
         " background-color: transparent;  " 
         "}"); 

您必須確保,對象名稱匹配(在這裏:「custom_tab」和「templates_tab」

+0

感謝這工作! – ayylamow

相關問題