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操作列表之List.insert()方法的使用
May 20 Python
python机器学习理论与实战(二)决策树
Jan 19 Python
对Python subprocess.Popen子进程管道阻塞详解
Oct 29 Python
Python设计模式之原型模式实例详解
Jan 18 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
使用Python实现跳帧截取视频帧
May 31 Python
python批量解压zip文件的方法
Aug 20 Python
详解Python time库的使用
Oct 10 Python
numpy ndarray 按条件筛选数组,关联筛选的例子
Nov 26 Python
python字典setdefault方法和get方法使用实例
Dec 25 Python
Python读取Excel一列并计算所有对象出现次数的方法
Sep 04 Python
python 实现图片修复(可用于去水印)
Nov 19 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
第三节--定义一个类
2006/11/16 PHP
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
php include类文件超时问题处理
2015/02/06 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
JavaScript中获取未知对象属性的代码
2011/04/27 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
Vue2.0学习系列之项目上线的方法步骤(图文)
2018/09/25 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
使用Python爬虫库requests发送表单数据和JSON数据
2020/01/25 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
Python 去除字符串中指定字符串
2020/03/05 Python
Python生成器next方法和send方法区别详解
2020/05/30 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
安全生产检讨书
2014/01/21 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
2015年宣传部部长竞选演讲稿
2014/11/28 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书