我正在使用带有多个标签的QTabWidget。我想创建一个不同的选项卡(具有与其余选项卡不同的样式)。例如,firefox如何使用绿色加号按钮添加与其他选项卡不同的新选项卡。
我正在浏览文档,但找不到任何与标签的独特样式相关的内容。我看了QTabWidget和QTabBar,但没有运气。
这就是我创建标签的方式
self.tabWidget = QtGui.QTabWidget()
self.tabWidget.addTab(QtGui.QWidget, "Tab_1")
有什么我忽略的吗?
答案 0 :(得分:5)
实际上,Qt拥有非常好的文档,非常好的例子,here。 Main page to stylesheets.
您所要做的就是使用QtDesigner
或python本身设置样式表,如下所示:
self.tabWidget.setStyleSheet("background-color: rgb(255, 255, 255);\n"
"border:1px solid rgb(255, 170, 255);")
以下是样本表样本(Qtabwidget
中的第三个示例)
QTabWidget::pane { /* The tab widget frame */
border-top: 2px solid #C2C7CB;
position: absolute;
top: -0.5em;
}
QTabWidget::tab-bar {
alignment: center;
}
/* Style the tab using the tab sub-control. Note that
it reads QTabBar _not_ QTabWidget */
QTabBar::tab {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
border: 2px solid #C4C4C3;
border-bottom-color: #C2C7CB; /* same as the pane color */
border-top-left-radius: 4px;
border-top-right-radius: 4px;
min-width: 8ex;
padding: 2px;
}
QTabBar::tab:selected, QTabBar::tab:hover {
background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
stop: 0 #fafafa, stop: 0.4 #f4f4f4,
stop: 0.5 #e7e7e7, stop: 1.0 #fafafa);
}
QTabBar::tab:selected {
border-color: #9B9B9B;
border-bottom-color: #C2C7CB; /* same as pane color */
}