python - QTabBar 既不完全展开也不均匀地间隔选项卡

标签 python qt pyqt4 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{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()

enter image description here

我有这样的想法,由于对话框应具有固定大小,因此可以将每个选项卡宽度计算为总宽度/(选项卡数量),但我仍然不知道如何告诉每个选项卡其宽度...

最佳答案

您可以使用void setExpanding(boolenabled)来展开选项卡。详细信息请参阅文档:

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()

关于python - QTabBar 既不完全展开也不均匀地间隔选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19013254/

相关文章:

python - 如何找到不包含特定字符串的任何匹配项?

qt - 在 qtcreator 调试器中发送 gdb 命令

python - 从最多 6 位数字的字符串中提取数值,可选 2 位小数

python - 从 pycharm 运行 dev_appserver.py 时出现 ImportError

windows - 如果您使用使用 OpenGL 的库,您在 Windows PC 上需要什么?

python - 导入错误 : cannot import name NavigationToolbar2QTAgg

pyqt4 - 如何在 PyQt4 中为 QListView 获取 selectionchange 事件

python - 收集函数的值

用于 postgresql pg_dump* 的 python api,恢复命令

c++ - 滚动条在Qt中控制滚动滚动区域