如何使QTabWidget中的一个标签栏可消耗?

魔力

我需要自定义我的QTabWidget,以便它的一个标签栏(可以说总共有4个标签)具有扩展属性,并将填充其他标签之间的剩余空间。有任何想法吗?

a_manthey_67

您可以QTabBar将其子类化,将其设置为tabwidget的宽度(高度取决于fontsize)并覆盖tabSizeHint()

class tabBar(QTabBar):

    def __init__(self, width, height, parent=None):
        QTabBar.__init__(self, parent)
        self.setFixedSize(width, height)

    def tabSizeHint(self, i):
        f = 3                           # Tab3 shall be f times wider then the other tabs
        tw = int(self.width()/(self.count() + f -1))        # width per Tab
        if i == 2:                      # Tab3                      
            # return QSize(tw*f, self.height())         edited -> rounding error possible
            return QSize(self.width() - (self.count() - 1)*tw, self.height())
        return QSize(tw, self.height())             # all other tabs

并将此tabBar设置为您的tabwidget:

tb = tabBar(tabWidget.width(), 34)                  # tabBars height depends on fontSize
tabwidget..setTabBar(tb)

看起来像这样:

带有扩展标签的tabwidget

编辑:

如果调整tabWidget的大小,resizeEvent()则会发生。此时,tabWidget已经具有其新大小,并在resizeEvent()之后立即重新绘制,请参见QT-Doc QTabWidget.resizeEvent

因此,如果将width()tabBar的改编为resizeEvent(),则tabBar的宽度将始终与tabwidget相同。因为tabSizeHint()取决于宽度,所以所有选项卡也将具有正确的宽度。因此,您可以继承QTabWidget()并覆盖resizeEvent()动态解决方案:

class tabWidget(QTabWidget):

    def __init__(self, parent=None):
        QTabWidget.__init__(self, parent)

    def resizeEvent(self, event):
        self.tabBar().setFixedWidth(self.width())
        QTabWidget.resizeEvent(self, event)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在QTabWidget中设置可移动标签的样式

来自分类Dev

如何在JavaFx中实现一个菜单栏支持多于一个场景

来自分类Dev

Kafka如何并行消耗一个主题

来自分类Dev

在一个应用程序中组合导航栏和标签栏的正确故事板示例是什么?

来自分类Dev

快速隐藏标签栏上的一个按钮

来自分类Dev

如何获得标签以从Swift中的另一个标签提取文本?

来自分类Dev

QTabWidget。如何将一个标签移动到正确的位置?

来自分类Dev

如何禁用QTabWidget中的一个标签?

来自分类Dev

如何使用XSD将一个标签的值反映到另一个标签中?

来自分类Dev

如何在QtabWidget中仅将一个选项卡设置为在Qt中不可移动?

来自分类Dev

如何删除Eureka表单中的<>(下一个/上一个)完成工具栏?

来自分类Dev

如何在jquery中的另一个span标签内附加一个span标签?

来自分类Dev

如何将图像标签更改为SVG中的另一个标签?

来自分类Dev

如何从主div标签下的第一个sub div标签中抓取文本

来自分类Dev

如何在QTabWidget中设置可移动标签的样式

来自分类Dev

如何将一个表单标签的元素带入javascript中的另一个表单标签

来自分类Dev

如何将标签栏控制器从一个标签栏推到另一标签栏控制器

来自分类Dev

如何使用“最后一个标签”和“最后一个会话”文件将我的最后一个标签加载到Chrome中?

来自分类Dev

如何将“可扩展/可拖延”快捷方式(如“此PC”)从“桌面”工具栏放到另一个快捷方式中

来自分类Dev

如何在jquery中的另一个span标签内附加一个span标签?

来自分类Dev

单击时从一个标签栏移动到另一个标签栏(带有导航控制器的标签栏)

来自分类Dev

我需要帮助在顶部导航栏中对齐两个 <li> 标签;一个在右边,另一个在真正的中心

来自分类Dev

我需要帮助在顶部导航栏中对齐两个 <li> 标签;一个在右边,另一个在真正的中心

来自分类Dev

如何同时给一个表单中的多个标签添加一个类

来自分类Dev

如何找出 QTabWidget 中标签栏的高度?

来自分类Dev

如何获取列表中的第一个标签?

来自分类Dev

当相同的标签在xml中相互重叠时如何删除第一个标签

来自分类Dev

如果数据在另一个标签栏控制器中更改,如何正确更新表格单元格信息?

来自分类Dev

在应用程序中,我的标签栏只显示 3 个图标中的 2 个,最后一个栏的图标没有出现。我该如何解决?

Related 相关文章

  1. 1

    如何在QTabWidget中设置可移动标签的样式

  2. 2

    如何在JavaFx中实现一个菜单栏支持多于一个场景

  3. 3

    Kafka如何并行消耗一个主题

  4. 4

    在一个应用程序中组合导航栏和标签栏的正确故事板示例是什么?

  5. 5

    快速隐藏标签栏上的一个按钮

  6. 6

    如何获得标签以从Swift中的另一个标签提取文本?

  7. 7

    QTabWidget。如何将一个标签移动到正确的位置?

  8. 8

    如何禁用QTabWidget中的一个标签?

  9. 9

    如何使用XSD将一个标签的值反映到另一个标签中?

  10. 10

    如何在QtabWidget中仅将一个选项卡设置为在Qt中不可移动?

  11. 11

    如何删除Eureka表单中的<>(下一个/上一个)完成工具栏?

  12. 12

    如何在jquery中的另一个span标签内附加一个span标签?

  13. 13

    如何将图像标签更改为SVG中的另一个标签?

  14. 14

    如何从主div标签下的第一个sub div标签中抓取文本

  15. 15

    如何在QTabWidget中设置可移动标签的样式

  16. 16

    如何将一个表单标签的元素带入javascript中的另一个表单标签

  17. 17

    如何将标签栏控制器从一个标签栏推到另一标签栏控制器

  18. 18

    如何使用“最后一个标签”和“最后一个会话”文件将我的最后一个标签加载到Chrome中?

  19. 19

    如何将“可扩展/可拖延”快捷方式(如“此PC”)从“桌面”工具栏放到另一个快捷方式中

  20. 20

    如何在jquery中的另一个span标签内附加一个span标签?

  21. 21

    单击时从一个标签栏移动到另一个标签栏(带有导航控制器的标签栏)

  22. 22

    我需要帮助在顶部导航栏中对齐两个 <li> 标签;一个在右边,另一个在真正的中心

  23. 23

    我需要帮助在顶部导航栏中对齐两个 <li> 标签;一个在右边,另一个在真正的中心

  24. 24

    如何同时给一个表单中的多个标签添加一个类

  25. 25

    如何找出 QTabWidget 中标签栏的高度?

  26. 26

    如何获取列表中的第一个标签?

  27. 27

    当相同的标签在xml中相互重叠时如何删除第一个标签

  28. 28

    如果数据在另一个标签栏控制器中更改,如何正确更新表格单元格信息?

  29. 29

    在应用程序中,我的标签栏只显示 3 个图标中的 2 个,最后一个栏的图标没有出现。我该如何解决?

热门标签

归档