qtabwidget的图标_实战PyQt5: 050-选项卡控件QTabWidget
![](/assets/blank.gif)
QTabWidget简介
在GUI应用软件中,多页面的切换的使用范围十分广泛,在操作过程中,用户使用鼠标点击不同的标题栏就可以方便展示不同页面的内容,众多界面共用一块显示区域,在有限的就显示区域中可以很方便地位用户显示更多的信息。
Qt为多页面切换的实现提供了一个专门的控件QTabWidget, 它可以实现在同一区域中自由切换不同页面的内容,该控件是一个容器类控件,并提供友好的页面切换方式。
QTabWidget常用方法有:
- addTab(): 添加一个标签;
- insertTab(): 在指定位置插入一个标签;
- removeTab(): 删除指定索引的标签;
- setTabText(): 设置指定索引标签的文本信息;
- tabText(): 获得指定索引标签的文本信息;
- setTabIcon(): 设置指定索引标签的图标;
- tabIcon(): 获得指定索引标签的图标;
- currentWidget(): 获得当前活动标签的部件;
- widget(): 获得指定标签索引的部件;
- indexOf(): 获得指定部件的标签索引;
- count(): 总标签数;
- setTabPosition(): 设置标签的显示位置,值为(北:QTabWidget.North, 南:QTabWidget.South, 西:QTabWidget.West, 东:QTabWidget.East);
- setTabShape(): 设置标签的形状, 值为:(四边形:QTabWidget.Rounded, 三角形:QTabWidget.Triangular)。
QTabWidget常用信号:
- currentChanged: 当前标签页发生改变后,发射该信号;
- tabCloseRequested: 标签页关闭请求时,发射该信号;
- tabBarClicked: 单击了标签条,发射该信号;
- tabBarDoubleClicked: 双击了标签条,发射该信号。
QTabWidget类继承关系:
![](/assets/blank.gif)
测试QTabWidget
创建文件qtabwidget,假设我们设计一个win10系统文件右键菜单属性对话框,其主要内容就是由选项卡控件实现, 在这里实现其选项卡框架, 完整代码如下:
import sysfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5.QtCore import Qtfrom PyQt5.QtGui import QFontfrom PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QTabWidget, QMenuBar, QMenu, QAction, QActionGroup, QVBoxLayout, QLabel) class DemoTabWidget(QMainWindow): def __init__(self, parent=None): super(DemoTabWidget, self).__init__(parent) # 设置窗口标题 self.setWindowTitle('实战PyQt5: QTabWidget Demo!') # 设置窗口大小 self.resize(480, 360) self.initUi() def initUi(self): self.initMenu() self.tw = QTabWidget(self) self.tw.addTab(self.createWidget(0), '常规') self.tw.addTab(self.createWidget(1), '快捷方式') self.tw.addTab(self.createWidget(2), '兼容性') self.tw.addTab(self.createWidget(3), '安全') self.tw.addTab(self.createWidget(4), '详细信息') self.tw.addTab(self.createWidget(5), '以前的版本') self.setCentralWidget(self.tw) def initMenu(self): menuBar = self.menuBar() #添加一个菜单项,在菜单项下课添加子菜单项 fileMenu = menuBar.addMenu('文件') aExit = QAction('Exit', self) aExit.triggered.connect(self.close) fileMenu.addAction(aExit) #标签条位置控制 posMenu = menuBar.addMenu('标签条位置') aNorth = QAction('上方', self) aNorth.setCheckable(True) aNorth.setChecked(True) aNorth.triggered.connect(lambda:self.changeTabPos(0)) aSouth = QAction('下方', self) aSouth.setCheckable(True) aSouth.triggered.connect(lambda:self.changeTabPos(1)) aWest = QAction('左边', self) aWest.setCheckable(True) aWest.triggered.connect(lambda:self.changeTabPos(2)) aEast = QAction('右边', self) aEast.setCheckable(True) aEast.triggered.connect(lambda:self.changeTabPos(3)) posGroup = QActionGroup(self) posGroup.addAction(aNorth) posGroup.addAction(aSouth) posGroup.addAction(aWest) posGroup.addAction(aEast) posMenu.addAction(aNorth) posMenu.addAction(aSouth) posMenu.addAction(aWest) posMenu.addAction(aEast) #标签条形状 shapeMenu = menuBar.addMenu('标签条形状') aRounded = QAction('圆角矩形', self) aRounded.setCheckable(True) aRounded.setChecked(True) aRounded.triggered.connect(lambda:self.changeTabShape(0)) aTriangular = QAction('三角形', self) aTriangular.setCheckable(True) aTriangular.triggered.connect(lambda:self.changeTabShape(1)) shapeGroup = QActionGroup(self) shapeGroup.addAction(aRounded) shapeGroup.addAction(aTriangular) shapeMenu.addAction(aRounded) shapeMenu.addAction(aTriangular) def changeTabPos(self, index): switcher = { 0: QTabWidget.North, 1: QTabWidget.South, 2: QTabWidget.West, 3: QTabWidget.East } self.tw.setTabPosition(switcher.get(index)) def changeTabShape(self, index): if index == 0: self.tw.setTabShape(QTabWidget.Rounded) else: self.tw.setTabShape(QTabWidget.Triangular) def createWidget(self, index): wid = QWidget() layout = QVBoxLayout(wid) label = QLabel(wid) label.setAlignment(Qt.AlignCenter) label.setFont(QFont(self.font().family(), 36)) label.setText("选项卡 {}".format(index + 1)) layout.addWidget(label) wid.setLayout(layout) return wid if __name__ == '__main__': app = QApplication(sys.argv) window = DemoTabWidget() window.show() sys.exit(app.exec())
运行结果如下图:
![](/assets/blank.gif)
测试QTabWidget
本文知识点
- 使用QTabWidget添加多个选项卡;
- 改变选项卡标签的显示位置;
- 改变选项卡标签的形状;
- 使用QActionGroup实现一组菜单项的单选功能;
- 改变QLabel字体的尺寸。
喜欢本文内容就收藏,点赞,评论,关注和转发。
qtabwidget的图标_实战PyQt5: 050-选项卡控件QTabWidget相关推荐
- 文本编辑器查看 cprintf颜色_实战PyQt5: 028-纯文本编辑控件QPlainTextEdit
QPlainTextEdit简介 QPlainTextEdit小部件是一个用于编辑和显示纯文本控件,QPlainTextEdit控件与QTextEdit控件使用了相同的技术和概念,但是它为纯文本处理提 ...
- python选项卡控件_python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与...
PyQt5选项卡控件QTabWidget简介 QTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面,通过单击各选项卡可以查看对应的界面,如果在一个窗口中显示的输入字段很多 ...
- 实战PyQt5: 050-选项卡控件QTabWidget
QTabWidget简介 在GUI应用软件中,多页面的切换的使用范围十分广泛,在操作过程中,用户使用鼠标点击不同的标题栏就可以方便展示不同页面的内容,众多界面共用一块显示区域,在有限的就显示区域中可以 ...
- html tab选项卡 控件,Tab选项卡组件
Tab选项卡组件 Tab组件是根据AppCan 布局框架对数据列表进行封装的JS对象,通过配合的样式,使开发者在界面中可以快速完成选项卡控件的开发. 依赖 appcan.js appcan.contr ...
- KRBTabControl(中文)Windows选项卡控件
本文阐述了如何在C#使自定义Windows选项卡控件. Download demo project - 82.4 KB Download source - 252 KB 介绍 本文讨论如何使用.NET ...
- Plotly绘制金融时间序列图实战:配置滑动控件
Plotly绘制金融时间序列图实战:配置滑动控件 # 可视化金融时间序列数据并设置时间粒度组件: import plotly as py import plotly.graph_objs as go ...
- python日历gui_python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例...
PyQt5日期时间控件QDateTimeEdit介绍 QDateTimeEdit是一个允许用户编辑日期时间的控件,可以使用键盘上的上下键头按钮来增加或减少日期的时间值,QDateTimeEdit通过s ...
- Asp.Net Web控件 (八)(TabControl 选项卡控件)
在项目开发中经常会用到选项卡控件,网上也有很多,其实只是简单的功能,很多却实现的很复杂,功能很强大,并不是我需要的. 下面来实现一个简单的TabControl . 先看演示: 位置:TabContor ...
- [原创]FineUI秘密花园(二十六) — 选项卡控件概述
选项卡的使用非常广泛,比如官方示例的站点框架,TabStrip被用来同时打开多个页面,并方便地在页面之间进行快速切换.TabStrip还进行需要和JavaScript进行交互,比如动态的打开关闭选项卡 ...
最新文章
- 常用的shell脚本案例(14.04.15更新)
- redux-form的学习笔记二--实现表单的同步验证
- OpenJDK源码研究笔记(六)--观察者模式工具类(Observer和Observable)和应用示例
- 视频帧率对人眼主观感受的影响 2
- 信捷PLC XD/XL系列C语言功能块的应用
- 在html中图片不显示不出来,网页图片显示不出来
- [JZOJ3461] 小麦亩产一千八
- 600,000,002,200,300,400等开头的股票都是什么意思
- [Python] 贡献度分析
- EOJ 2527 Fj haozi【dfs】
- 关于数独--九宫格的算法实现
- iOS开发中键盘样式和自定义键盘。
- Windows如何安装mysql
- 给计算机图片文件夹加密码,文件夹怎么设置密码
- Win10笔记本触摸板在按键时或刚按完键后无法正常使用的问题
- SQL server 计算当前日期为一年中的第几周,以周五/周一作为一周中的第一天
- 前端面试 - JS总结(1) - 基础 (数据类型, 事件与函数, 原型链)
- 中国1-甲基环丙烯市场现状研究分析与发展前景预测报告(2022)
- Echarts全国地图区域合并------去掉海南子区域及南海诸岛
- 微电网和直流电网中最优潮流(OPF)的凸优化(Matlab代码实现)
热门文章
- Python中operator模块的操作
- [Asp.net]SignalR实现实时日志监控
- .net 获取 存储过程的输出参数
- Android开发之旅:应用程序基础及组件
- 计算机主机漏电,电脑机箱漏电怎么办?机箱电源漏电原因及解决方法
- 在linux中完整路径中的目录间分隔符是,路径分隔符(斜杠/与反斜杠\的问题)
- mysql主从同步从库上Slave_IO_Running: Connecting问题
- 如何在mysql查找效率慢的SQL语句
- redis 内存不足 排查_一文深入了解 Redis 内存模型,Redis 的快是有原因的!
- 网站运维技术与实践之服务器监测常用命令