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 ZipFile模块详解
Nov 01 Python
Python中的生成器和yield详细介绍
Jan 09 Python
Python 模块EasyGui详细介绍
Feb 19 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
django反向解析和正向解析的方式
Jun 05 Python
python numpy 显示图像阵列的实例
Jul 02 Python
解决python中os.listdir()函数读取文件夹下文件的乱序和排序问题
Oct 17 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
Django实现文件上传下载功能
Oct 06 Python
python 使用事件对象asyncio.Event来同步协程的操作
May 04 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
May 27 Python
让文件路径提取变得更简单的Python Path库
May 27 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设计模式 Factory(工厂模式)
2011/06/26 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
js Flash插入函数免激活代码
2009/03/31 Javascript
javascript Prototype 对象扩展
2009/05/15 Javascript
jquery each()源代码
2011/02/14 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
jQuery滑动效果实现方法分析
2018/09/05 jQuery
ES6使用export和import实现模块化的方法
2018/09/10 Javascript
JS函数节流和防抖之间的区分和实现详解
2019/01/11 Javascript
Vue插件之滑动验证码用法详解
2020/04/05 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python的collections模块中namedtuple结构使用示例
2016/07/07 Python
3个用于数据科学的顶级Python库
2018/09/29 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
Python join()函数原理及使用方法
2020/11/14 Python
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
促销活动总结报告
2014/04/26 职场文书
大学英语专业求职信
2014/06/21 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
乡镇群众路线整改落实情况汇报
2014/10/28 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
交通事故被告答辩状
2015/05/22 职场文书
西游降魔篇观后感
2015/06/15 职场文书
《少年闰土》教学反思
2016/02/18 职场文书
团组织关系介绍信
2019/06/24 职场文书
python实现简单聊天功能
2021/07/07 Python
SQL实现LeetCode(178.分数排行)
2021/08/04 MySQL