目录

  • 1 简介
  • 2 常用API
  • 3 使用示例

1 简介

QTabWidget继承自QWidget。

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
import sys, os
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt, QPoint, pyqtSignal, QObject, QEvent, QThread
from PyQt5.QtGui import QFont, QMouseEvent, QPainter, QColor, QPenclass QTabWidgetDemo(QTabWidget):def __init__(self):super(QTabWidgetDemo, self).__init__()self.resize(400, 400)self._init_ui()def _init_ui(self):self.setWindowTitle("QTabWidgetDemo")self.show()self.tab1=QWidget()self.tab2=QWidget()self.tab3=QWidget()self.addTab(self.tab1, "红")self.addTab(self.tab2, "绿")self.addTab(self.tab3, "蓝")self.tab1.setStyleSheet("background-color:red;")self.tab2.setStyleSheet("background-color:green;")self.tab3.setStyleSheet("background-color:blue;")print(self.currentIndex())
if __name__ == '__main__':app = QApplication(sys.argv)win = QTabWidgetDemo()win.show()sys.exit(app.exec_())

效果如下:

2 常用API

API 简介
int addTab(QWidget *page, const QString &label) 增加一个新的tab项界面       
int count() const 获得tab个数,返回值int
int currentIndex() const 获得当前tab index
QWidget * currentWidget() const 获得当前tab widget对象
int insertTab(int index, QWidget *page, const QString &label) 插入一个tab 界面
void removeTab(int index) 移除一个tab界面
void setTabShape(TabShape s) 设置tabshape形状
void setTabText(int index, const QString &label) 设置tab 文字
TabShape tabShape() const 获得abshape形状
QString tabText(int index) const 获得tab text
槽函数
void setCurrentIndex(int index)
void setCurrentWidget(QWidget *widget)
信号
void currentChanged(int index)
void tabBarClicked(int index)
void tabBarDoubleClicked(int index)
void tabCloseRequested(int index)

3 使用示例

#!/usr/bin/env python3
# -*- coding:utf-8 -*-import sys, os,random
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt, QPoint, pyqtSignal, QObject, QEvent, QThread
from PyQt5.QtGui import QFont, QMouseEvent, QPainter, QColor, QPenclass QTabWidgetDemo(QWidget):def __init__(self):super(QTabWidgetDemo, self).__init__()self.resize(600, 600)self.setWindowTitle("QTabWidgetDemo")self.mainlayout = QVBoxLayout(self)self._init_tabwidget()self._control_ui()def _init_tabwidget(self):self.tabwidget = QTabWidget(self)self.tab01 = QWidget()self.tab02 = QWidget()self.tabwidget.addTab(self.tab01,"tab01")self.tabwidget.addTab(self.tab02,"tab02")self.mainlayout.addWidget(self.tabwidget,10)def _control_ui(self):layout = QHBoxLayout()self.addtab_btn = QPushButton("添加tab",clicked=self.on_addtab_btn_clicked )self.remove_btn = QPushButton("移除tab", clicked=self.on_remove_btn_clicked)layout.addWidget(self.addtab_btn)layout.addWidget(self.remove_btn)self.mainlayout.addLayout(layout,1)def on_addtab_btn_clicked(self):widget = QWidget()tabnum = self.tabwidget.count()  # 获得tab个数widget.setStyleSheet("background-color:rgb(200,%s,%s)"%(str(random.randint(1,255)), str(random.randint(1,255) ) ))self.tabwidget.addTab(widget, "tab %s"%(str(tabnum+1)) )self.tabwidget.setCurrentIndex(tabnum)def on_remove_btn_clicked(self):#移除最后一个tabnum = self.tabwidget.count()  # 获得tab个数if tabnum>1:self.tabwidget.removeTab(tabnum-1) #移除最后一个tabif __name__ == '__main__':app = QApplication(sys.argv)win = QTabWidgetDemo()win.show()sys.exit(app.exec_())

效果如下:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-import sys, os,random
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt, QPoint, pyqtSignal, QObject, QEvent, QThread
from PyQt5.QtGui import QFont, QMouseEvent, QPainter, QColor, QPenclass QTabWidgetDemo(QWidget):def __init__(self):super(QTabWidgetDemo, self).__init__()self.resize(500, 500)self.setWindowTitle("QTabWidgetDemo")self.mainlayout = QVBoxLayout(self)self._init_tabwidget()self._control_ui()def _init_tabwidget(self):self.tabwidget = QTabWidget(self)self.tab01 = QWidget()self.tab01.setStyleSheet("background-color:rgb(%s,%s,%s)" % (str(random.randint(1, 255)), str(random.randint(1, 255)),str(random.randint(1, 255))))self.tab02 = QWidget()self.tab02.setStyleSheet("background-color:rgb(200,%s,%s)" % (str(random.randint(1, 255)), str(random.randint(1, 255))))self.tabwidget.addTab(self.tab01,"tab01")self.tabwidget.addTab(self.tab02,"tab02")self.mainlayout.addWidget(self.tabwidget,10)def _control_ui(self):layout = QGridLayout()self.settabtext_btn = QPushButton("设置第一个TAB页名字",clicked=self.slot_settabtext_btn )self.tab_name = QLineEdit("tab")layout.addWidget(self.tab_name,0,0,1,1)layout.addWidget(self.settabtext_btn, 0, 1, 1, 1)#设置shapeself.setshape_btn = QPushButton("设置Shape", clicked=self.slot_setshape_btn)self.shape_combox = QComboBox()self.shape_combox.addItems(["Rounded", "Triangular"])layout.addWidget(self.shape_combox,1,0,1,1)layout.addWidget(self.setshape_btn, 1, 1, 1, 1)#位置self.settabposition_btn = QPushButton("设置tab位置", clicked=self.slot_settabposition_btn)self.position_combox = QComboBox()self.position_combox.addItems(["North", "South","West","East"])layout.addWidget(self.position_combox,2,0,1,1)layout.addWidget(self.settabposition_btn, 2, 1, 1, 1)self.mainlayout.addLayout(layout,1)def slot_settabtext_btn(self):if self.tab_name.text():self.tabwidget.setTabText(0, self.tab_name.text())else:self.tabwidget.setTabText(0, "不输入就随便叫啥了")def slot_setshape_btn(self):if self.shape_combox.currentText()=="Rounded":self.tabwidget.setTabShape(QTabWidget.Rounded)elif self.shape_combox.currentText()=="Triangular":self.tabwidget.setTabShape(QTabWidget.Triangular)else:passdef slot_settabposition_btn(self):if self.position_combox.currentText()=="North":self.tabwidget.setTabPosition(QTabWidget.North)elif  self.position_combox.currentText()=="South":self.tabwidget.setTabPosition(QTabWidget.South)elif  self.position_combox.currentText()=="West":self.tabwidget.setTabPosition(QTabWidget.West)else:self.tabwidget.setTabPosition(QTabWidget.East)if __name__ == '__main__':app = QApplication(sys.argv)win = QTabWidgetDemo()win.show()sys.exit(app.exec_())

8 PyQt5 QTabWidget相关推荐

  1. qtabwidget的图标_实战PyQt5: 050-选项卡控件QTabWidget

    QTabWidget简介 在GUI应用软件中,多页面的切换的使用范围十分广泛,在操作过程中,用户使用鼠标点击不同的标题栏就可以方便展示不同页面的内容,众多界面共用一块显示区域,在有限的就显示区域中可以 ...

  2. 实战PyQt5: 050-选项卡控件QTabWidget

    QTabWidget简介 在GUI应用软件中,多页面的切换的使用范围十分广泛,在操作过程中,用户使用鼠标点击不同的标题栏就可以方便展示不同页面的内容,众多界面共用一块显示区域,在有限的就显示区域中可以 ...

  3. pyqt5讲解8:容器QTabWidget,QStackedWidget,QDockWidget

    QTabWidget 常用方法 方法 描述 addTab() 将一个控件添加到Tab控件的选项卡中 insertTab() 将一个Tab控件的选项卡插入到指定的位置 removeTab() 根据指定的 ...

  4. python选项卡控件_python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与...

    PyQt5选项卡控件QTabWidget简介 QTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面,通过单击各选项卡可以查看对应的界面,如果在一个窗口中显示的输入字段很多 ...

  5. PyQt5第一部分-窗口类:QWidget, QDeskWidget, QTabWidget, QMainWindow, QDialog

    0 前言 1 控件的几何数据 QRect,QPoint,QSize 1.1 方法列表 2 基本窗口 QWidget 2.1 方法列表 2.2 示例 第一个APP 3 桌面窗口 QDeskWidget ...

  6. Python Qt GUI设计:QTabWidget、QStackedWidget和QDockWidget容器控件类(提升篇—2)

    目录 1.QTabWidget容器控件类 2.QStackedWidget容器控件类 3.QDockWidget容器控件类 有时候我们可能会面临这样一种情况:所开发的程序包含了太多的控件,导致一个窗口 ...

  7. 浏览器tab关闭事件_Python--使用Pyqt5实现简易浏览器(最新版本测试过)

    Python--使用Pyqt5实现简易浏览器(最新版本测试过) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 准备环境 首先我 ...

  8. pyqt5如何循环遍历控件名_利用Python的PyQt5编写GUI界面教学,QT5还是比较难的

    由于学校课程的项目,最近最近在学习如何利用Python语言和SQL Server编写一个读者图书借阅.查询管理的小程序.以此为契机吧,自己便开始了学习之路~ 这篇文章主要介绍自己如何使用PyQt5编写 ...

  9. python PyQt5.QtWidgets.QWidget类

    参考文章:QWidget 文章目录 详细说明 事件 示例 详细说明 widget是用户界面的原子:它从窗口系统接收鼠标,键盘和其他事件,并将其自身绘制在屏幕上. 每个widget都是矩形的,并且按z- ...

最新文章

  1. Spring配置iBatis多个SqlMapConfig.xml
  2. db2 sql 判断select是否为空_学会复杂一点的SQL语句:Oracle DDL和DML
  3. [AtCoder]Grand Contest 028
  4. [短评]企业裁员行为对整个社会的正面意义
  5. 红帽企业版Linux 6安装指南(中文)
  6. 数据恢复工具FinalData
  7. ios 后台唤醒应用_iOS 前后台机制以及后台唤醒机制【个人学习】
  8. dell计算机维修教程,戴尔Dell Latitude E6410/E6510官方拆机图解维修手册
  9. 知识图谱下图神经网络、图计算、图数据、图数据库未来发展趋势如何?
  10. 磨刀不误砍柴工——模板方法模式
  11. MATLAB中plot函数的用法
  12. Python Selenium自动化测试框架 Test Suite测试套件
  13. delete hive_hive执行更新和删除操作
  14. ctf MISC 放松一下吧
  15. python求两数最大公因数_Python求两个数的最大公约数
  16. 常用贷款词汇英文名称
  17. 【论文检索】推荐一个可以免费下载论文的网站
  18. 5个Python开发实用工具
  19. php吓人,网友分享最细思极恐的真实经历,截图太可怕…
  20. five86-3靶机渗透攻略

热门文章

  1. 简单但现代的服务器仪表板Dashdot
  2. autojs可视化控件位置
  3. 【转载】深入浅出 - 小牛学堂-2018大数据之共享单车实战
  4. 360 网站漏洞检测
  5. QQ已删好友查询手机版
  6. 乐鑫ESP8266烧录固件、升级最新固件、刷MQTT固件
  7. 积分制管理系统:添加员工
  8. 【JPEG2000】JPEG2000开源库: OpenJPEG
  9. 计算机中的组和用户名好多是干什么用的,什么是本地用户和本地组
  10. 手把手教你如何给视频快速消音并添加背景音乐