8 PyQt5 QTabWidget
目录
- 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相关推荐
- qtabwidget的图标_实战PyQt5: 050-选项卡控件QTabWidget
QTabWidget简介 在GUI应用软件中,多页面的切换的使用范围十分广泛,在操作过程中,用户使用鼠标点击不同的标题栏就可以方便展示不同页面的内容,众多界面共用一块显示区域,在有限的就显示区域中可以 ...
- 实战PyQt5: 050-选项卡控件QTabWidget
QTabWidget简介 在GUI应用软件中,多页面的切换的使用范围十分广泛,在操作过程中,用户使用鼠标点击不同的标题栏就可以方便展示不同页面的内容,众多界面共用一块显示区域,在有限的就显示区域中可以 ...
- pyqt5讲解8:容器QTabWidget,QStackedWidget,QDockWidget
QTabWidget 常用方法 方法 描述 addTab() 将一个控件添加到Tab控件的选项卡中 insertTab() 将一个Tab控件的选项卡插入到指定的位置 removeTab() 根据指定的 ...
- python选项卡控件_python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与...
PyQt5选项卡控件QTabWidget简介 QTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面,通过单击各选项卡可以查看对应的界面,如果在一个窗口中显示的输入字段很多 ...
- PyQt5第一部分-窗口类:QWidget, QDeskWidget, QTabWidget, QMainWindow, QDialog
0 前言 1 控件的几何数据 QRect,QPoint,QSize 1.1 方法列表 2 基本窗口 QWidget 2.1 方法列表 2.2 示例 第一个APP 3 桌面窗口 QDeskWidget ...
- Python Qt GUI设计:QTabWidget、QStackedWidget和QDockWidget容器控件类(提升篇—2)
目录 1.QTabWidget容器控件类 2.QStackedWidget容器控件类 3.QDockWidget容器控件类 有时候我们可能会面临这样一种情况:所开发的程序包含了太多的控件,导致一个窗口 ...
- 浏览器tab关闭事件_Python--使用Pyqt5实现简易浏览器(最新版本测试过)
Python--使用Pyqt5实现简易浏览器(最新版本测试过) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 准备环境 首先我 ...
- pyqt5如何循环遍历控件名_利用Python的PyQt5编写GUI界面教学,QT5还是比较难的
由于学校课程的项目,最近最近在学习如何利用Python语言和SQL Server编写一个读者图书借阅.查询管理的小程序.以此为契机吧,自己便开始了学习之路~ 这篇文章主要介绍自己如何使用PyQt5编写 ...
- python PyQt5.QtWidgets.QWidget类
参考文章:QWidget 文章目录 详细说明 事件 示例 详细说明 widget是用户界面的原子:它从窗口系统接收鼠标,键盘和其他事件,并将其自身绘制在屏幕上. 每个widget都是矩形的,并且按z- ...
最新文章
- Spring配置iBatis多个SqlMapConfig.xml
- db2 sql 判断select是否为空_学会复杂一点的SQL语句:Oracle DDL和DML
- [AtCoder]Grand Contest 028
- [短评]企业裁员行为对整个社会的正面意义
- 红帽企业版Linux 6安装指南(中文)
- 数据恢复工具FinalData
- ios 后台唤醒应用_iOS 前后台机制以及后台唤醒机制【个人学习】
- dell计算机维修教程,戴尔Dell Latitude E6410/E6510官方拆机图解维修手册
- 知识图谱下图神经网络、图计算、图数据、图数据库未来发展趋势如何?
- 磨刀不误砍柴工——模板方法模式
- MATLAB中plot函数的用法
- Python Selenium自动化测试框架 Test Suite测试套件
- delete hive_hive执行更新和删除操作
- ctf MISC 放松一下吧
- python求两数最大公因数_Python求两个数的最大公约数
- 常用贷款词汇英文名称
- 【论文检索】推荐一个可以免费下载论文的网站
- 5个Python开发实用工具
- php吓人,网友分享最细思极恐的真实经历,截图太可怕…
- five86-3靶机渗透攻略