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 相关文章推荐
pandas.loc 选取指定列进行操作的实例
May 18 Python
使用Selenium破解新浪微博的四宫格验证码
Oct 19 Python
python将.ppm格式图片转换成.jpg格式文件的方法
Oct 27 Python
Python装饰器基础概念与用法详解
Dec 22 Python
对python借助百度云API对评论进行观点抽取的方法详解
Feb 21 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
Jun 04 Python
python实现将视频按帧读取到自定义目录
Dec 10 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
Jun 03 Python
在vscode中启动conda虚拟环境的思路详解
Dec 25 Python
用Python创建简易网站图文教程
Jun 11 Python
Python进行区间取值案例讲解
Aug 02 Python
python和Appium的移动端多设备自动化测试框架
Apr 26 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实现把数组按指定的个数分隔
2014/02/17 PHP
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
优化innerHTML操作(提高代码执行效率)
2011/08/20 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
JavaScript原生对象之Date对象的属性和方法详解
2015/03/13 Javascript
js省市区级联查询(插件版&无插件版)
2017/03/21 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
浅谈AngularJs 双向绑定原理(数据绑定机制)
2017/12/07 Javascript
JS实现留言板功能[楼层效果展示]
2017/12/27 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
python实现自动解数独小程序
2019/01/21 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
python实现简单遗传算法
2020/09/18 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
2021/02/03 Python
CAD制图设计师自荐信
2014/01/29 职场文书
明星员工获奖感言
2014/08/14 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
2015年副班长工作总结
2015/05/15 职场文书
法定代表人免职证明
2015/06/24 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP