【问题标题】:PySide custom TabPySide 自定义选项卡
【发布时间】:2013-08-05 10:39:55
【问题描述】:

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

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

这就是我创建标签的方式

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

有什么我忽略的吗?

【问题讨论】:

    标签: python pyqt pyside


    【解决方案1】:

    实际上,Qt 有非常好的文档和非常好的示例,都是hereMain 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 */
     }
    

    【讨论】:

    • 是的,我意识到了这一点,但是使用它所有的选项卡都将完全相同。每个选项卡都将具有相同的样式表。如果我有 5 个选项卡,并且我希望其中一个具有与另一个完全不同的样式表(不计算选定/悬停的选项卡),该怎么办。
    • 你有没有看过像QTabBar::tab:first 这样的选择器?
    • 啊哈!对不起,那是我的愚蠢。那解决了它。非常感谢:)
    • @user2444217 很高兴我能帮上忙!
    猜你喜欢
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多