QTabWidget標籤頭(Tabbar)上方留出空白

今天遇到調整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);"
		"}"
	);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章