PyQt5 组件之QTabWidget

QTabWidget简介

QTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面,通过单击各选项卡可以查看对应的界面,如果在一个窗口中显示的输入字段很多,则可以对这些字段进行拆分,分别放置在不同界面的选项卡中。

QTabWidget类中常用的方法

 QTabWidget类中的常用信号

 QTabWidget效果截图:

 

PyQt 设计器截图: 

 

   *.ui 转换为*.py 代码 

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'untitled12.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.
import sys

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QFormLayout, QLineEdit, QHBoxLayout, QRadioButton, \
    QLabel, QCheckBox


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalTabWidget = QtWidgets.QTabWidget(self.centralwidget)
        self.verticalTabWidget.setGeometry(QtCore.QRect(20, 40, 771, 321))
        self.verticalTabWidget.setObjectName("verticalTabWidget")


        # 创建3个选项卡小控件窗口
        self.tab1 = QWidget()
        self.tab2 = QWidget()
        self.tab3 = QWidget()

        # 将三个选项卡添加到顶层窗口中
        self.verticalTabWidget.addTab(self.tab1, "新增")
        self.verticalTabWidget.addTab(self.tab2, "查询")
        self.verticalTabWidget.addTab(self.tab3, "提交")

        # 每个选项卡页面绑定
        self.tab1UI()
        self.tab2UI()
        self.tab3UI()



        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

    def tab1UI(self):
        # 表单布局
        layout = QFormLayout()
        # 添加姓名,地址的单行文本输入框
        layout.addRow('姓名', QLineEdit())
        layout.addRow('地址', QLineEdit())
        # 设置选项卡的小标题与布局方式
        self.verticalTabWidget.setTabText(0, '联系方式')
        self.tab1.setLayout(layout)

    def tab2UI(self):
        # zhu表单布局,次水平布局
        layout = QFormLayout()
        sex = QHBoxLayout()

        # 水平布局添加单选按钮
        sex.addWidget(QRadioButton('男'))
        sex.addWidget(QRadioButton('女'))

        # 表单布局添加控件
        layout.addRow(QLabel('性别'), sex)
        layout.addRow('生日', QLineEdit())

        # 设置标题与布局
        self.verticalTabWidget.setTabText(1, '个人详细信息')
        self.tab2.setLayout(layout)

    def tab3UI(self):
        # 水平布局
        layout = QHBoxLayout()

        # 添加控件到布局中
        layout.addWidget(QLabel('科目'))
        layout.addWidget(QCheckBox('物理'))
        layout.addWidget(QCheckBox('高数'))

        # 设置小标题与布局方式
        self.verticalTabWidget.setTabText(2, '教育程度')
        self.tab3.setLayout(layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    MainWindow = QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

 需要向PyUIC 生成的代码,添加如下代码片段:

重点实现QTabWidget 添加控件窗口

        # 创建3个选项卡小控件窗口
        self.tab1 = QWidget()
        self.tab2 = QWidget()
        self.tab3 = QWidget()

        # 将三个选项卡添加到顶层窗口中
        self.verticalTabWidget.addTab(self.tab1, "新增")
        self.verticalTabWidget.addTab(self.tab2, "查询")
        self.verticalTabWidget.addTab(self.tab3, "提交")

        # 每个选项卡页面绑定
        self.tab1UI()
        self.tab2UI()
        self.tab3UI()
    def tab1UI(self):
        # 表单布局
        layout = QFormLayout()
        # 添加姓名,地址的单行文本输入框
        layout.addRow('姓名', QLineEdit())
        layout.addRow('地址', QLineEdit())
        # 设置选项卡的小标题与布局方式
        self.verticalTabWidget.setTabText(0, '联系方式')
        self.tab1.setLayout(layout)

    def tab2UI(self):
        # zhu表单布局,次水平布局
        layout = QFormLayout()
        sex = QHBoxLayout()

        # 水平布局添加单选按钮
        sex.addWidget(QRadioButton('男'))
        sex.addWidget(QRadioButton('女'))

        # 表单布局添加控件
        layout.addRow(QLabel('性别'), sex)
        layout.addRow('生日', QLineEdit())

        # 设置标题与布局
        self.verticalTabWidget.setTabText(1, '个人详细信息')
        self.tab2.setLayout(layout)

    def tab3UI(self):
        # 水平布局
        layout = QHBoxLayout()

        # 添加控件到布局中
        layout.addWidget(QLabel('科目'))
        layout.addWidget(QCheckBox('物理'))
        layout.addWidget(QCheckBox('高数'))

        # 设置小标题与布局方式
        self.verticalTabWidget.setTabText(2, '教育程度')
        self.tab3.setLayout(layout)

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QTabWidget是一个Qt界面类,用于在单个窗口中显示多个标签页。 以下是QTabWidget的一些常用方法和属性: 1. 添加标签页:使用addTab()方法添加,参数为QWidget对象和标签名称。 2. 获取当前活动标签页:使用currentIndex()方法获取当前活动标签页索引。 3. 设置当前活动标签页:使用setCurrentIndex()方法设置当前活动标签页,参数为标签页索引。 4. 获取标签页数量:使用count()方法获取标签页数量。 5. 移除标签页:使用removeTab()方法移除标签页,参数为标签页索引。 6. 隐藏标签页:使用setTabEnabled()方法设置标签页是否可用,参数为标签页索引和布尔值。 下面是一个简单的例子: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QTabWidget, QVBoxLayout, QLabel class TabWidget(QTabWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): # 添加标签页 tab1 = QWidget() tab2 = QWidget() self.addTab(tab1, "标签1") self.addTab(tab2, "标签2") # 设置布局 layout1 = QVBoxLayout() layout1.addWidget(QLabel("这是标签1")) tab1.setLayout(layout1) layout2 = QVBoxLayout() layout2.addWidget(QLabel("这是标签2")) tab2.setLayout(layout2) # 设置当前活动标签页 self.setCurrentIndex(0) if __name__ == '__main__': app = QApplication(sys.argv) ex = TabWidget() ex.show() sys.exit(app.exec_()) ``` 在这个例子中,QTabWidget类继承自QWidget类,因此可以像使用其他QWidget类一样设置布局和添加子控件。使用addTab()方法添加标签页,并使用setCurrentIndex()方法设置当前活动标签页。最后,使用show()方法显示窗口并运行应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值