首页 > 其他分享 >25.PyQt5【高级组件】选项卡-QTabWidget

25.PyQt5【高级组件】选项卡-QTabWidget

时间:2023-01-16 10:55:21浏览次数:54  
标签:25 选项卡 index self PyQt5 组件 QTabWidget 页面

一、前言

如果表单有太多需要同时显示的字段,可以将它们排列在不同的页面中,放置在选项卡式小部件的每个选项卡下。提供了一个标签栏和一个页面区域。显示第一个选项卡下的页面,隐藏其他页面。用户可以通过单击所需的选项卡来查看任何页面。

二、学习目标

1.QTabWidget常用方法

2.QTabWidget常用信号

3.QTabWidget组件的应用

三、知识点

1.【QTabWidget常用方法】

方法 描述
addTab(widget,text) 将一个控件添加到Tab控件的选项卡中
insertTab(index,widget,icon,label) 将一个Tab控件的选项卡插入到指定的位置
removeTab(index) 根据指定的索引删除Tab控件
setCurrentIndex(index) 设置当前可见的选项卡所在的索引
setCurrentWidget(widget) 设置当前可见的界面
setTabText(index,text) 设置指定索引的选项卡的文本值。如果提供的文本包含“&”字符(“?”),则会自动为其创建快捷方式。
setTabEnabled(index,enabled) 设置指定索引的选项卡是否可用
setTabIcon(index,icon) 设置指定索引的选项卡的图标
setTabVisible(index,visible) 设置指定索引的选项卡是否可见。如果visible为true则可见;否则为false。
setTabsClosable(closeable) 设置是否将关闭按钮自动添加到每个选项卡
setTabPosition(position) 选项卡的位置由值控制
QTabWidget.North:页面上方的
QTabWidget.South:页面下方的
QTabWidget.West:页面左侧的
QTabWidget.East:页面右侧的
tabText(index) 返回页面上位置index处的选项卡的标签文本
widget(index) 返回位于索引位置index的选项卡页;如果索引超出范围,则返回None
indexOf(widget) 返回指定选项卡组件的索引值
currentIndex() 返回当前显示的选项卡的索引值
currentWidget() 返回当前显示的选项卡的组件
count() 返回选项卡的数量
isTabEnabled(index) 如果启用了位置索引页面,则返回true;否则,返回true。否则返回false
isTabVisible(index) 如果位置索引处的页面可见,则返回true;否则返回true。否则返回false
clear() 清除所有页面

2.【QTabWidget常用信号】

信号 描述
currentChanged(index) 每当当前页面索引发生变化时,触发信号
tabBarClicked(index) 单击选项卡栏时,触发信号
tabBarDoubleClicked(index) 双击选项卡栏时,触发信号
tabCloseRequested(index) 单击选项卡上的关闭按钮时,触发信号

3.【QTabWidget组件的应用】

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTabWidget, QFormLayout, QLineEdit


class QmyWidget(QWidget):

    def __init__(self, parent=None):
        super().__init__(parent)  # 调用父类的构造函数,创建QWidget窗体
        self.setupUi()

    def setupUi(self):
        """页面初始化"""
        # 设置窗体大小及标题
        self.resize(500, 400)
        self.setWindowTitle("QTabWidget组件示例")
        # 创建布局
        self.main_layout = QVBoxLayout()

        # QTabWidget组件定义
        self.tabWidget = QTabWidget()  # 定义选项卡组件
        self.tab1 = QWidget()          # 定义tab页1
        self.setupTab1()               # 初始化新构造的tab1
        self.tab2 = QWidget()          # 定义tab页2
        self.tab3 = QWidget()          # 定义tab页3
        # QTabWidget组件设置
        self.tabWidget.addTab(self.tab1, "Tab 1")  # 将tab1添加到选项卡组件
        self.tabWidget.addTab(self.tab2, "Tab 2")  # 将tab2添加到选项卡组件
        self.tabWidget.addTab(self.tab3, "Tab 3")  # 将tab3添加到选项卡组件
        self.tabWidget.setTabsClosable(True)       # 给每个选项卡设置关闭按钮
        self.tabWidget.setTabPosition(QTabWidget.East)  # 设置选项卡的位置
        self.tabWidget.setCurrentIndex(1)           # 设置当前默认显示的tab页
        # QTabWidget绑定信号
        self.tabWidget.currentChanged.connect(self.on_tabWidget_currentChanged)

        # 将组件添加到布局中
        self.main_layout.addWidget(self.tabWidget)
        # 为窗体添加布局
        self.setLayout(self.main_layout)

    def setupTab1(self):
        """tab1页面初始化"""
        self.layout = QFormLayout()
        # 2.设置表单格式
        self.layout.setLabelAlignment(Qt.AlignLeft)
        self.layout.setFormAlignment(Qt.AlignRight)
        # 3.创建输入组件
        name_edit = QLineEdit()
        mail_edit = QLineEdit()
        # 4.为表单添加行
        self.layout.addRow("Name:", name_edit)
        self.layout.addRow("Mail:", mail_edit)
        # 5.为窗体设置表单布局
        self.tab1.setLayout(self.layout)

    def on_tabWidget_currentChanged(self, index):
        """选项卡切换槽函数"""
        print("选项卡当前切换为:{}".format(str(index)))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    myMain = QmyWidget()
    myMain.show()
    sys.exit(app.exec_())

标签:25,选项卡,index,self,PyQt5,组件,QTabWidget,页面
From: https://www.cnblogs.com/ckxingchen/p/17054889.html

相关文章

  • 24.PyQt5【高级组件】树形组件-QTreeWidget
    一、前言QTreeWidget使用类似于QListView类的方式提供一种典型的基于item的树形交互方法类,该类基于QT的“模型/视图”结构,提供了默认的模型来支撑item的显示,这些i......
  • 26.PyQt5【高级组件】工具箱-QToolBox
    一、前言QToolBox控件提供了一个可进行一列选项卡操作方式,在每个选项卡内可包含不同的控件布局。QToolBox将选项卡一个一个地显示,当前项目显示在当前选项卡下方。每个选项......
  • 3.PyQt5【窗口组件】主窗口-QMainWindow
    一、前言QMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及周围......
  • 4.PyQt5【布局组件】水平布局-QHBoxLayout
    一、前言QLayout是Qt中布局管理器的抽象基类,通过对QLayout的继承,实现了功能各异且互补的布局管理器。布局管理器不是界面组件,而是界面组件的定位策略;任意容器类型的组件都......
  • 5.PyQt5【布局组件】垂直布局-QVBoxLayout
    一、前言本节我们介绍布局组件中的垂直布局QVBoxLayout。二、学习目标1.QVBoxLayout垂直布局应用三、知识点1.【QVBoxLayout垂直布局应用】垂直布局将多个控件在垂直......
  • 6.PyQt5【布局组件】网格布局-QGridLayout
    一、前言本节我们介绍布局组件中的网格布局QGridLayout。二、学习目标1.QGridLayout网格布局的应用三、知识点1.【QGridLayout网格布局的应用】网格布局也称栅格布局......
  • 7.PyQt5【布局组件】表单布局-QFormLayout
    一、前言本节我们介绍布局组件中的表单布局QFormLayout。二、学习目标1.QFormLayout表单布局的应用三、知识点1.【QFormLayout表单布局的应用】表单布局以两列的形式......
  • 9.PyQt5【布局组件】区域分隔器-QSplitter
    一、前言本节我们介绍布局组件中的区域分隔器QSplitter。二、学习目标1.QSplitter区域分隔器的应用三、知识点1.【QSplitter区域分隔器的应用】QSplitter是一个带切......
  • 8.PyQt5【布局组件】容器布局-QGroupBox
    一、前言本节我们介绍布局组件中的容器布局QGroupBox。二、学习目标1.QGroupBox容器布局的应用三、知识点1.【QGroupBox容器布局的应用】容器布局将容器控件(Containe......
  • 10.PyQt5【基本组件】标签-QLabel
    一、前言QLabel对象充当占位符以显示不可编辑的文本或图像,或动画GIF电影。它也可以用作其他小部件的助记键。标签上可以显示纯文本、超链接或富文本。二、学习目标1.Q......