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 工具箱相关推荐

  1. pyqt5做一个工具箱

    前提 python3.9环境 qtdesigner,用来设计ui界面 pyuic,用来把qtdesigner生成的ui文件转换为py文件,已配置至pycharm pyrcc,用来把图片等资源打包成py ...

  2. exe打包工具哪个最好_为你的 Python 程序写个启动工具箱

    到目前为止,公众号已经介绍了不少图形界面的软件,比如猜数游戏.PDF阅读器.贪吃蛇游戏.天气查询软件.PDF 阅读器等.为了方便他人使用,我们常把图形界面打包成 exe 文件.但是如果我们只是为了自己 ...

  3. PyQT5 之 Qt Designer 介绍与入门

    From:https://www.jianshu.com/p/5b063c5745d0 养薛定谔的猫 简书:https://www.jianshu.com/u/bf82b363ae88 Qt Desi ...

  4. Python 小白从零开始 PyQt5 项目实战(8)汇总篇(完整例程)

    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战.不跳过一个细节,不漏掉一行代码,不省略一个例图. 本系列从软件安装.环境配置开始,介绍了基本应 ...

  5. Python 小白从零开始 PyQt5 项目实战(4)基本控件

    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战. 什么叫从零开始?从软件安装.环境配置开始.不跳过一个细节,不漏掉一行代码,不省略一个例图. ...

  6. Python 小白从零开始 PyQt5 项目实战(3)信号与槽的连接

    本系列面向 Python 小白,从零开始实战解说应用 QtDesigner 进行 PyQt5 的项目实战. 什么叫从零开始?从软件安装.环境配置开始.不跳过一个细节,不漏掉一行代码,不省略一个例图. ...

  7. python网络安全工具箱界面_Python开发案例:设计启动工具箱,显示图形界面的方式...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于云+社区,作者 用户2870857 转载地址 https://bl ...

  8. PyQt5实战之二维码生成器(一):基本界面设计

    前言 大家好,这里是Seon塞翁.本实战项目为构建一个桌面应用,功能是定制二维码,实现多种数据类型的嵌入,和二维码样式的多样化. 涉及知识点:基于 PyQt5 的界面构建和功能实现(包括标签.按钮.文 ...

  9. 《快速掌握PyQt5》

    写在前面: 因为太喜欢Python和Qt了,所以想开始慢慢写一些有关PyQt5的知识点.刚开始会介绍各个控件的使用,之后会进行实战操作,相信学完本系列对大家的兼职/外快事业会有帮助.所有的篇章不会有太 ...

最新文章

  1. 给Scrum Master的十个建议,你值得拥有((转自scrum中文网))
  2. 如何在ubuntu下使用samba创建共享
  3. 使用 mysql workbench 建议
  4. SD功能增强业务说明书
  5. Qt / 如何解决移动了 Qt 的项目,但是 Qt 在原目录下生成编译文件的问题
  6. Hashtable 和 HashMap 的区别
  7. 读书笔记:《亮剑 .Net》——将类转化为XML并保存已经去读后反序列化为类对象...
  8. 如何使用Python进行单元测试
  9. 网络工程师HCNA认证学习笔记Day1
  10. 变频器的技术应用:接线与参数设置
  11. DarkGDK的杯具体验
  12. 湘潭大学2022软件工程程序设计实践平时练习二C/C++
  13. Ubuntu中报错:failed to create hard link
  14. 电脑ping,怎么ping网速,详细教您ping网络的方法
  15. STM32驱动0.96寸OLED屏幕
  16. ic618画版图2.0
  17. 关于火狐浏览器无法倍速看百度网盘视频
  18. Maven 中文文档
  19. python算式运算题目_python的四则运算练习
  20. linux命令记忆方法,Linux命令快速巧记法

热门文章

  1. 百度与吉利共同研制汽车行业大模型,助力中国汽车产业“智领”全球
  2. 整蛊代码——start cmd
  3. Dirichlet分布
  4. 让人惊叹的经典网络营销案例!
  5. 11.Flink ProcessFunction介绍及KeyedProcessFunction实例
  6. 当义乌小商品城遇上易信青果摄像机
  7. 穷举法python例子_(Python)简单线性模型与穷举优化,穷举法
  8. 从CMO到CGO,看大数据营销的演变史!
  9. web前端字体居中_html里文字居中代码怎么写?_WEB前端开发
  10. 视联网PK互动数字电视和IPTV