今天遇到調整QTabWidget樣式的問題。最難解決的問題是,標籤頁上方留出部分空白背景區域。
預實現效果如下
箭頭所指區域是背景色。
實現方法
這裏我取了個巧,直接設置的 margin-top,暫時沒有找到更好的方法。
QTabBar::tab {
margin-top:8px;
}
番外篇
在解決上個問題之前,還遇到另外的問題,就是標籤頁後面的背景色無法改變,怎麼設置都沒有效果。最後,查找了許多,發現原因是多方面的。
解決如下:
ui.tabWidgetCentral->setAutoFillBackground(false);
ui.tabWidgetCentral->setAttribute(Qt::WA_StyledBackground);
ui.tabWidgetCentral->setStyleSheet("QTabWidget{ "
"background-color: #F4F8FF;"
"margin-top: 0px;"
"border:none;"
"}"
);
樣式參考
ui.tabWidgetCentral->setTabsClosable(true);
ui.tabWidgetCentral->setAutoFillBackground(false);
ui.tabWidgetCentral->setAttribute(Qt::WA_StyledBackground);
ui.tabWidgetCentral->setStyleSheet("QTabWidget{ "
"background-color: #F4F8FF;"
"margin-top: 0px;"
"border:none;"
"}"
"QTabWidget::pane {"
"border-top: 2px solid;"
"border-color: #D7D9DD;"
"background-color: rgb(255, 255, 255);"
"}"
"QTabBar::tab {"
"width:171px;"
"height:24px;"
"font-family:\"方正蘭亭黑簡體\";"
"font-size:14px;"
"color:#FFFFFF;"
"background:#83AFE2;"
"border-top-left-radius:7px;"
"border-top-right-radius:7px;"
"border:none; "
"text-align:left;"
//"min-height:24px;"
"max-height:40px;"
"margin-top:8px;"
"margin-left:8px;"
"padding-left:8px;"
"}"
"QTabBar::tab:selected{"
"background:#3375C2;"
"border-top-left-radius:0px;"
"border-top-right-radius:7px;"
"}"
"QTabBar::close-button {"
"margin-left:8px;"
"margin-top:8px;"
"image: url(:/GuiCameraSetupWidget/Resources/close2.png);"
"}"
);