PyQt5 工具箱
QToolBox
QToolBox类提供了一列选项卡的小部件(选项卡内含项目)。
工具箱是一个小部件,它将选项卡一个一个的显示,当前项目显示在当前选项卡下方。每个选项卡在选项卡列中都有一个索引位置。一个选项卡的项目是一个QWidget。
每个项目都有一个itemText(),一个可选的itemIcon(),一个可选的itemToolTip()和一个widget()。项目的属性可以通过setItemText(),setItemIcon()和setItemToolTip()来改变。每个项目都可以使用setItemEnabled()单独启用或禁用。
项目使用addItem()添加,或使用insertItem()插入特定位置。项目总数由count()给出。可以删除项目,或使用removeItem()从工具箱中删除项目。通过组合removeItem()和insertItem(),您可以将项目移动到不同的位置。
当前项目小部件的索引由currentIndex()返回,并用setCurrentIndex()设置。可以使用indexOf()来找到特定项目的索引,并且item()返回给定索引处的项目。
currentChanged()信号在当前项目改变时发出。
栗子
from PyQt5.QtWidgets import QToolBox, QApplication, QToolButton, QGroupBox, QVBoxLayout
from PyQt5.QtCore import Qt, QSize
from PyQt5.QtGui import QIcon
import sys, webbrowserclass Example(QToolBox):def __init__(self):super().__init__()self.initUI()def initUI(self):self.resize(280,500)self.setWindowTitle('微信公众号:学点编程吧--QToolBox')self.setWindowFlags(Qt.Dialog)favorites =[[{'des':'百度搜索', 'pic':'image/se/baidu.ico'},{'des':'搜狗搜索', 'pic':'image/se/sougo.ico'},{'des':'必应搜索', 'pic':'image/se/bing.ico'},{'des':'360搜索', 'pic':'image/se/360.ico'},{'des':'谷歌搜索', 'pic':'image/se/google.ico'},{'des':'雅虎搜索', 'pic':'image/se/yahoo.ico'}],[{'des':'腾讯视频', 'pic':'image/v/tengxun.ico'},{'des':'搜狐视频', 'pic':'image/v/sohuvideo.ico'},{'des':'优酷视频', 'pic':'image/v/youku.ico'},{'des':'土豆视频', 'pic':'image/v/tudou.ico'},{'des':'AcFun弹幕', 'pic':'image/v/acfun.ico'},{'des':'哔哩哔哩', 'pic':'image/v/bilibili.ico'}]]for item in favorites:groupbox = QGroupBox()vlayout = QVBoxLayout(groupbox)vlayout.setAlignment(Qt.AlignCenter)for category in item:toolButton = QToolButton()toolButton.setText(category['des'])toolButton.setIcon(QIcon(category['pic']))toolButton.setIconSize(QSize(64, 64))toolButton.setAutoRaise(True)toolButton.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)vlayout.addWidget(toolButton)name = category['des'] toolButton.clicked.connect(self.run)if name == '雅虎搜索':self.addItem(groupbox,'搜索引擎')else:self.addItem(groupbox,'视频网站')self.show()def run(self):if self.sender().text() == '百度搜索':webbrowser.open('https://www.baidu.com')elif self.sender().text() == '搜狗搜索':webbrowser.open('https://www.sogou.com/')elif self.sender().text() == '必应搜索':webbrowser.open('http://cn.bing.com/')elif self.sender().text() == '360搜索':webbrowser.open('https://www.so.com/')elif self.sender().text() == '谷歌搜索':webbrowser.open('https://www.google.com/')elif self.sender().text() == '雅虎搜索':webbrowser.open('https://www.yahoo.com/')elif self.sender().text() == '腾讯视频':webbrowser.open('https://v.qq.com/')elif self.sender().text() == '搜狐视频':webbrowser.open('https://film.sohu.com')elif self.sender().text() == '优酷视频':webbrowser.open('http://www.youku.com/')elif self.sender().text() == '土豆视频':webbrowser.open('http://www.tudou.com/')elif self.sender().text() == 'AcFun弹幕':webbrowser.open('http://www.acfun.cn/')elif self.sender().text() == '哔哩哔哩':webbrowser.open('https://www.bilibili.com/')if __name__ == '__main__':app = QApplication(sys.argv)ex = Example()sys.exit(app.exec_())
具体运行结果参考:
https://zhuanlan.zhihu.com/p/33498667
谢谢 “学点编程吧”
PyQt5 工具箱相关推荐
- pyqt5做一个工具箱
前提 python3.9环境 qtdesigner,用来设计ui界面 pyuic,用来把qtdesigner生成的ui文件转换为py文件,已配置至pycharm pyrcc,用来把图片等资源打包成py ...
- exe打包工具哪个最好_为你的 Python 程序写个启动工具箱
到目前为止,公众号已经介绍了不少图形界面的软件,比如猜数游戏.PDF阅读器.贪吃蛇游戏.天气查询软件.PDF 阅读器等.为了方便他人使用,我们常把图形界面打包成 exe 文件.但是如果我们只是为了自己 ...
- PyQT5 之 Qt Designer 介绍与入门
From:https://www.jianshu.com/p/5b063c5745d0 养薛定谔的猫 简书:https://www.jianshu.com/u/bf82b363ae88 Qt Desi ...
- Python 小白从零开始 PyQt5 项目实战(8)汇总篇(完整例程)
本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战.不跳过一个细节,不漏掉一行代码,不省略一个例图. 本系列从软件安装.环境配置开始,介绍了基本应 ...
- Python 小白从零开始 PyQt5 项目实战(4)基本控件
本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战. 什么叫从零开始?从软件安装.环境配置开始.不跳过一个细节,不漏掉一行代码,不省略一个例图. ...
- Python 小白从零开始 PyQt5 项目实战(3)信号与槽的连接
本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战. 什么叫从零开始?从软件安装.环境配置开始.不跳过一个细节,不漏掉一行代码,不省略一个例图. ...
- python网络安全工具箱界面_Python开发案例:设计启动工具箱,显示图形界面的方式...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于云+社区,作者 用户2870857 转载地址 https://bl ...
- PyQt5实战之二维码生成器(一):基本界面设计
前言 大家好,这里是Seon塞翁.本实战项目为构建一个桌面应用,功能是定制二维码,实现多种数据类型的嵌入,和二维码样式的多样化. 涉及知识点:基于 PyQt5 的界面构建和功能实现(包括标签.按钮.文 ...
- 《快速掌握PyQt5》
写在前面: 因为太喜欢Python和Qt了,所以想开始慢慢写一些有关PyQt5的知识点.刚开始会介绍各个控件的使用,之后会进行实战操作,相信学完本系列对大家的兼职/外快事业会有帮助.所有的篇章不会有太 ...
最新文章
- 给Scrum Master的十个建议,你值得拥有((转自scrum中文网))
- 如何在ubuntu下使用samba创建共享
- 使用 mysql workbench 建议
- SD功能增强业务说明书
- Qt / 如何解决移动了 Qt 的项目,但是 Qt 在原目录下生成编译文件的问题
- Hashtable 和 HashMap 的区别
- 读书笔记:《亮剑 .Net》——将类转化为XML并保存已经去读后反序列化为类对象...
- 如何使用Python进行单元测试
- 网络工程师HCNA认证学习笔记Day1
- 变频器的技术应用:接线与参数设置
- DarkGDK的杯具体验
- 湘潭大学2022软件工程程序设计实践平时练习二C/C++
- Ubuntu中报错:failed to create hard link
- 电脑ping,怎么ping网速,详细教您ping网络的方法
- STM32驱动0.96寸OLED屏幕
- ic618画版图2.0
- 关于火狐浏览器无法倍速看百度网盘视频
- Maven 中文文档
- python算式运算题目_python的四则运算练习
- linux命令记忆方法,Linux命令快速巧记法
热门文章
- 百度与吉利共同研制汽车行业大模型,助力中国汽车产业“智领”全球
- 整蛊代码——start cmd
- Dirichlet分布
- 让人惊叹的经典网络营销案例!
- 11.Flink ProcessFunction介绍及KeyedProcessFunction实例
- 当义乌小商品城遇上易信青果摄像机
- 穷举法python例子_(Python)简单线性模型与穷举优化,穷举法
- 从CMO到CGO,看大数据营销的演变史!
- web前端字体居中_html里文字居中代码怎么写?_WEB前端开发
- 视联网PK互动数字电视和IPTV