PyQt5 标签页控件(QTabWidget)的使用

tab页控件

  • QTabWidget 类提供了一堆标签式小部件,如图所示


  • 选项卡小部件提供一个选项卡栏(请参阅QTabBar)和一个用于显示与每个选项卡相关的页面的“页面区域”。默认情况下,标签栏显示在页面区域上方,但有不同的配置可用(请参见TabPosition)。

  • 每个选项卡都与一个不同的小部件(称为页面)相关联。只有当前页面显示在页面区域中 ;所有其他页面都隐藏起来。用户可以通过单击其选项卡或按Alt +字母快捷键(如果有)来显示不同的页面

  1. 使用 QTabWidget 的正常方法是执行以下操作:

    • 创建一个 QTabWidget
    • 为选项卡对话框中的每个页面创建一个 QWidget,但不要为它们指定父窗口小部件
    • 将子窗口小部件插入到页面窗口小部件中,使用布局为其定位。
    • 调用addTab()insertTab()将页面小部件放入选项卡小部件,为每个选项卡提供一个带有可选键盘快捷键的合适标签
  2. QTabWidget 选项卡的位置由 TabPosition 定义,定义了 QTabWidget 在哪里绘制标签行

  • QTabWidget.TabPosition 举例
常数 描述
QTabWidget.TabPosition.North 0 选项卡绘制在页面上方,默认值
QTabWidget.TabPosition.South 1 标签在页面下方绘制
QTabWidget.TabPosition.West 2 这些选项卡绘制在页面的左侧
QTabWidget.TabPosition.East 3 这些选项卡绘制在页面的右侧

tabwidget = QTabWidget(window)
tabwidget.setTabPosition(QTabWidget.TabPosition.West)    # 这是其中一种写法,下面是第二种写法,也可不写,默认是在上方
# tabwidget.setTabPosition(0)



tabwidget = QTabWidget(window)
tabwidget.setTabPosition(QTabWidget.TabPosition.South)
# tabwidget.setTabPosition(1)



tabwidget = QTabWidget(window)
tabwidget.setTabPosition(QTabWidget.TabPosition.West)
# tabwidget.setTabPosition(2)



tabwidget = QTabWidget(window)
tabwidget.setTabPosition(QTabWidget.TabPosition.East)
# tabwidget.setTabPosition(3)

  1. QTabWidget 选项卡的形状由 TabShape 定义,它定义了选项卡的形状
  • QTabWidget.TabShape 举例
常数 描述
QTabWidget.TabShape.Rounded 0 这些选项卡以圆角的外观绘制。这是默认形状
QTabWidget.TabShape.Triangular 1 这些选项卡以三角形外观绘制

tabwidget = QTabWidget(window)
tabwidget.setTabShape(QTabWidget.TabShape.Rounded)      # 两种方式任选其一,这个是默认的
# tabwidget.setTabShape(0)



tabwidget = QTabWidget(window)
tabwidget.setTabShape(QTabWidget.TabShape.Triangular)
# tabwidget.setTabShape(1)

  1. 信号 currentChanged() 是在用户选择页面时发出的

tabwidget.currentChanged.connect(function)

  1. 其他小Tips
  • 当前页面索引可使用 currentIndex() 获得,当前页面小部件可使用 currentWidget() 获得。

  • 您可以使用 widget() 检索指向给定索引的页面小部件,并可以使用 indexOf() 来查找小部件的索引位置。

  • 使用 setCurrentWidget()setCurrentIndex()来显示特定的页面

  • 可以使用 setTabText()setTabIcon() 更改选项卡的文本和图标

  • 可以使用 removeTab() 删除选项卡及其关联的页面


  • 每个选项卡可以在任何时间启用或禁用(请参阅setTabEnabled())。如果启用选项卡,标签文本将正常绘制,用户可以选择该选项卡。如果它被禁用,则选项卡以不同的方式绘制,并且用户不能选择该选项卡

  • 选项卡小部件可以是分离复杂对话框的一种非常好的方法。另一种方法是使用QStackedWidget,为其提供一些页面之间的导航方式,例如QToolBar或QListWidget


  • QTabWidget中的大部分功能都由QTabBar(位于顶部,提供选项卡)和QStackedWidget(大部分区域,组织各个页面)提供。

  • 部分来自:知乎

posted @ 2021-07-01 16:26  阮小言  阅读(11372)  评论(0编辑  收藏  举报