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 基础学习教程
Feb 08 Python
在Python中使用Neo4j数据库的教程
Apr 16 Python
Python使用shelve模块实现简单数据存储的方法
May 20 Python
通过数据库对Django进行删除字段和删除模型的操作
Jul 21 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
如何用Python来理一理红楼梦里的那些关系
Aug 14 Python
Python文本处理简单易懂方法解析
Dec 19 Python
Python2 与Python3的版本区别实例分析
Mar 30 Python
pandas分组聚合详解
Apr 10 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
python接口测试返回数据为字典取值方式
Feb 12 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
Zend Framework入门教程之Zend_Db数据库操作详解
2016/12/08 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
jQuery的运行机制和设计理念分析
2011/04/05 Javascript
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
jQuery实现删除li节点的方法
2016/12/06 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
Python求解平方根的方法
2015/03/11 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Python实现端口检测的方法
2018/07/24 Python
python实现多层感知器
2019/01/18 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
自荐信格式的六要素
2013/09/21 职场文书
公司培训心得体会
2014/01/03 职场文书
好听的队名和口号
2014/06/09 职场文书
2014年派出所工作总结
2014/11/21 职场文书
vscode内网访问服务器的方法
2022/06/28 Servers