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 错误和异常代码详解
Jan 29 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
Python 使用Numpy对矩阵进行转置的方法
Jan 28 Python
python隐藏终端执行cmd命令的方法
Jun 24 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 Python
python支持多线程的爬虫实例
Dec 21 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
Mar 12 Python
python 监控logcat关键字功能
Sep 04 Python
浅析Python中字符串的intern机制
Oct 03 Python
Python hashlib和hmac模块使用方法解析
Dec 08 Python
基于PyTorch实现一个简单的CNN图像分类器
May 29 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使用range协议实现输出文件断点续传代码实例
2014/07/04 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
vue相关配置文件详解及多环境配置详细步骤
2020/05/19 Javascript
JavaScript实现表单验证功能
2020/12/09 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
python实现linux下使用xcopy的方法
2015/06/28 Python
解决Spyder中图片显示太小的问题
2018/04/27 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
如何基于Python实现数字类型转换
2020/02/07 Python
在python中修改.properties文件的操作
2020/04/08 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
python 检测nginx服务邮件报警的脚本
2020/12/31 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
求职简历中的自我评价分享
2013/12/08 职场文书
打架检讨书50字
2014/01/11 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
乡镇干部个人整改措施思想汇报
2014/10/10 职场文书
小学重阳节活动总结
2015/03/24 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
为什么node.js不适合大型项目
2021/04/28 Javascript
总结Python使用过程中的bug
2021/06/18 Python
新手入门Mysql--概念
2021/06/18 MySQL
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android
SQL写法--行行比较
2021/08/23 SQL Server
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL