1

我希望标签栏在空白处展开,直到右边。最好是所有选项卡的宽度都相同。我不知道该怎么做,因为我的样式表不起作用,而且我在文档中找不到选项。

from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import QtGui,QtCore
import sys

class Main(QWidget):
    def __init__(self,parent=None):
        QWidget.__init__(self)
        self.setFixedSize(600,500)

        self.tabBar=QTabBar(self)
        self.tabBar.setStyleSheet("QTabBar{width:400px;}")
        self.tabBar.setExpanding(True)

        self.layout=QVBoxLayout(self)
        self.layout.addWidget(self.tabBar)

        self.tabBar.addTab("Kontext Menu")
        self.tabBar.addTab("Settings in detail")
        self.tabBar.addTab("Help and tips")
        self.tabBar.addTab("About")
        self.tabBar.addTab("Credits")

        self.show()

if __name__ == '__main__':
    app=QApplication(sys.argv)
    sd=Main()
    app.exec()

在此处输入图像描述

我有一个想法,因为对话框应具有固定大小,因此可以将每个选项卡的宽度计算为 Totalwidth/(Amount of Tabs),但我仍然不知道如何告诉每个选项卡的宽度......

4

1 回答 1

2

您可以使用 展开选项卡void setExpanding(bool enabled)。有关详细信息,请参阅文档:

http://qt-project.org/doc/qt-5.1/qtwidgets/qtabbar.html#expanding-prop

此外,您将需要使用正确的样式语法,因为您似乎缺少正确的范围,即“::tab”部分。

此外,您需要在其QTabWidget自身上设置样式表,而不是QTabBar. 一开始可能有点奇怪,但这是实现你想要的东西的正确方法。

在这里您可以找到您应该编写的代码:

from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4 import QtGui,QtCore
import sys

class Main(QWidget):
    def __init__(self,parent=None):
        QWidget.__init__(self)
        self.setFixedSize(600,500)

        self.tabBar=QTabBar(self)
        self.tabBar.setStyleSheet("QTabBar::tab{width:400px;}")
        self.tabBar.setExpanding(True)

        self.layout=QVBoxLayout(self)
        self.layout.addWidget(self.tabBar)

        self.tabBar.addTab("Kontext Menu")
        self.tabBar.addTab("Settings in detail")
        self.tabBar.addTab("Help and tips")
        self.tabBar.addTab("About")
        self.tabBar.addTab("Credits")

        self.show()

if __name__ == '__main__':
    app=QApplication(sys.argv)
    sd=Main()
    app.exec()
于 2013-09-25T19:14:28.343 回答