python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例


Posted in Python onMarch 01, 2020

PyQt5选项卡控件QTabWidget简介

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

QTabWidget类中常用的方法

方法 描述
addTab() 将一个控件添加到Tab控件的选项卡中
insertTab() 将一个Tab控件的选项卡插入到指定的位置
removeTab() 根据指定的索引删除Tab控件
setCurrentIndex() 设置当前可见的选项卡所在的索引
setCurrentWidget() 设置当前可见的界面
setTabBar() 设置选项卡栏的小控件
setTabPosition() 设置选项卡的位置
QTabWidget.North:显示在页面的上方
QTabWidget.South:显示在页面的下方
QTabWidget.West:显示在页面的左侧
QTabWidget.East:显示在页面的右侧
setTabText() 定义Tab选项卡的显示值

QTabWidget类中的常用信号

信号 描述
currentChanged 切换当前页面时发射该信号

实例:QTabWidget的使用

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

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

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

    #将三个选项卡添加到顶层窗口中
    self.addTab(self.tab1, "Tab 1")
    self.addTab(self.tab2, "Tab 2")
    self.addTab(self.tab3, "Tab 3")

    #每个选项卡自定义的内容
    self.tab1UI()
    self.tab2UI()
    self.tab3UI()

  def tab1UI(self):
    #表单布局
    layout=QFormLayout()
    #添加姓名,地址的单行文本输入框
    layout.addRow('姓名',QLineEdit())
    layout.addRow('地址',QLineEdit())
    #设置选项卡的小标题与布局方式
    self.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.setTabText(1,'个人详细信息')
    self.tab2.setLayout(layout)

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

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

    #设置小标题与布局方式
    self.setTabText(2,'教育程度')
    self.tab3.setLayout(layout)
if __name__ == '__main__':
  app=QApplication(sys.argv)
  demo=TabDemo()
  demo.show()
  sys.exit(app.exec_())

运行效果图如下

python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例

python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例

python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例

代码分析

在这个例子中,一个表单的内容分为3组,每一组小控件都显示在不同的选项卡中,顶层窗口是一个QTabWidget控件,将三个选项卡添加进去

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

#将三个选项卡添加到顶层窗口中
self.addTab(self.tab1, "Tab 1")
self.addTab(self.tab2, "Tab 2")
self.addTab(self.tab3, "Tab 3")

使用表单布局管理器,每个选项卡显示子表单的内容

self.setTabText(0,'联系方式')
self.setTabText(1,'个人详细信息')
self.setTabText(2,'教育程度')

本文主要介绍了PyQt5选项卡控件QTabWidget详细使用方法与实例,更多关于PyQt5控件使用的知识请查看下面的相关链接

Python 相关文章推荐
分享python数据统计的一些小技巧
Jul 21 Python
解决python3中解压zip文件是文件名乱码的问题
Mar 22 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
Pytorch中的VGG实现修改最后一层FC
Jan 15 Python
Pycharm连接远程服务器过程图解
Apr 30 Python
Python with语句用法原理详解
Jul 03 Python
Pycharm 2020.1 版配置优化的详细教程
Aug 07 Python
Python安装Bs4的多种方法
Nov 28 Python
Python中lru_cache的使用和实现详解
Jan 25 Python
如何用python识别滑块验证码中的缺口
Apr 01 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 #Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
Mar 01 #Python
Python猜数字算法题详解
Mar 01 #Python
Python paramiko 模块浅谈与SSH主要功能模拟解析
Feb 29 #Python
python 中的paramiko模块简介及安装过程
Feb 29 #Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 #Python
vue学习笔记之动态组件和v-once指令简单示例
Feb 29 #Python
You might like
PHP 基本语法格式
2009/12/15 PHP
php实现无限级分类
2014/12/24 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
vue 1.0 结合animate.css定义动画效果
2018/07/11 Javascript
AngularJS $http post 传递参数数据的方法
2018/10/09 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
python执行等待程序直到第二天零点的方法
2015/04/23 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
PyTorch使用cpu加载模型运算方式
2020/01/13 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
SQL语言面试题
2013/08/27 面试题
请说出这段代码执行后a和b的值分别是多少
2015/03/28 面试题
师范学院教师自荐书
2014/01/31 职场文书
学校献爱心活动总结
2014/07/08 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
银行员工考核评语
2014/12/31 职场文书
2015年安全生产责任书
2015/01/30 职场文书
自主招生自荐信格式
2015/03/04 职场文书
中标通知书
2015/04/17 职场文书
老乡聚会通知
2015/04/23 职场文书
2015年国庆晚会主持词
2015/07/01 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android