Skip to main content
 首页 » 编程设计

python之PySide 自定义选项卡

2025年05月04日17sky-heaven

我正在使用带有多个选项卡的 QTabWidget。我想创建一个不同的选项卡(与其余选项卡具有不同的样式)。例如,firefox 如何使用绿色加号按钮来添加与其他选项卡不同的新选项卡。

我正在查看文档,但找不到与选项卡的独特样式相关的任何内容。我查看了 QTabWidget 和 QTabBar,但没有运气。

这就是我创建标签的方式

self.tabWidget = QtGui.QTabWidget() 
self.tabWidget.addTab(QtGui.QWidget, "Tab_1") 

我是否忽略了什么?

请您参考如下方法:

实际上,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 */ 
 }