PyQt开发实战: 利用QToolBox开发的桌面工具箱

QT入门Containers之QToolBox qt控件 阅读详情

一、引言

toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列的标签部件项(tabbed widget item),具体请见《PyQt(Python+Qt)学习随笔:工具箱(QToolBox)的用途及标签部件项(tabbed widget item)作用介绍》和《PyQt(Python+Qt)学习随笔:工具箱(QToolBox)编程使用的步骤及示例代码》的介绍。

本文将介绍老猿使用QToolBox实现的一个测试用Demo,实现一个桌面工具箱,在桌面工具箱中提供了通讯录、日历、时钟、记事本、图片显示五个工具。

二、UI设计

下图为该工具箱的UI设计:
在这里插入图片描述
包含了上面所介绍的五个标签,在《PyQt(Python+Qt)学习随笔:工具箱(QToolBox)编程使用的步骤及示例代码》中介绍说在UI界面就设计标签部件项,“其实执行后更麻烦,唯一的好处是能预览界面的情况,且标签的文本、图标和tooltip直接获取原来标签的即可无需在代码中指定”,但本Demo还是基于在UI中设计好标签部件项便于演示,但后续代码实现稍微复杂。

另外还有一个通讯录展示的窗口:
在这里插入图片描述

三、使用PyUIC生成UI对应代码文件

生成ui_toolBoxTest.py为应用主界面、ui_showPersons.py为通讯录展示窗口。

四、派生通讯录管理类personListWin

class personListWin(QtWidgets.QWidget,ui_showPersons.Ui_personListWin):
    def __init__(self,memberList=None):
        super().__init__()
        self.setupUi(self)
        if memberList:self.addMembers(memberList)

    def addMembers(self,memberList):
        self.itemList.addItems(memberList)

之所以派生该类是为了实例创建时可以直接添加成员。

五、定义数字时钟类DigitalClock

数字时钟从QtWidgets.QLCDNumber派生,实时显示时间:

class DigitalClock(QtWidgets.QLCDNumber):
    def __init__(self):
        super().__init__()
        self.setDigitCount(8) #显示8个字符
        self.timer =   QtCore.QTimer(self)
        self.timer.timeout.connect( self.showTime) #连接每秒触发一次的计时信号和showTime方法
        self.timer.start(1000)
        self.showTime()  #显示当前时间
        
 	def showTime(self):#在lcd界面上显示时间
        ......        

六、从UI界面类派生主界面类

派生类中做了如下几件事情:
1、为每个标签部件项构建对应功能部件widget;
2、将原来UI设计的标签部件项的text、icon、tooltip取出来后删除原项;
3、根据text、icon、tooltip、widget创建新项。

class mainWindow(QtWidgets.QWidget,ui_toolBoxTest.Ui_mainWin):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.initToolItemList() #初始化五个标签部件项

    def setItem(self,index,widget):
       
        ......
        self.toolBox.insertItem(index, widget, icon, itemText)
       
   
    def initToolItemList(self):
        #从最后一个项开始绑定对应widget对象
        count = self.toolBox.count()
        current = self.toolBox.currentIndex() #保存当前选择项

        for loop in range(count):
            index = count-loop-1

            if index == 0:
                item = personListWin(['陈佳妮', '许姮', '王二妮', '冯华','吕程', '李诞', '郑菱', '孙蒿', '杨枼', '朱酷安','吴勇', '李晖', '铎铎', '老聂', '老杨', '陈老师', '老余']) #创建通讯录部件
            elif index == 1:
                item = QtWidgets.QCalendarWidget() #创建日历部件
            elif index == 2:
                item = DigitalClock() #创建数字时钟部件
            elif index == 3:
                item = QtWidgets.QTextEdit('8:30 晨会') #创建记事本部件
                item.append('9:30 项目方案讨论')
                item.append('14:30 督办跟踪')
                item.append('16:00 OA文及邮件处理')
            else:
                view = QtWidgets.QGraphicsScene()  #创建图片展示部件

                view.addPixmap(QtGui.QPixmap(r"F:\屏保图片\壁纸20141214215651.jpg"))
                view.addText("Hello, world!")
                item = QtWidgets. QGraphicsView( view)
            self.setItem(index,item) #将item绑定到标签部件项的部件

        self.toolBox.setCurrentIndex(current) #恢复当前选中项

七、运行界面截图

在这里插入图片描述

在这里插入图片描述

广告

老猿关于PyQt的付费专栏《使用PyQt开发图形界面Python应用》只需要9.9元,该部分与第十五章的内容基本对应,但同样内容在付费专栏上总体来说更详细、案例更多。本节内容在付费专栏的《PyQt开发样例: 利用QToolBox开发的桌面工具箱Demo》。如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

老猿Python,跟老猿学Python!

PyQt5 QToolBox组件开发指南与实战应用 在Python GUI开发中,PyQt5作为主流框架提供了丰富的界面组件。QToolBox作为一种垂直可折叠容器组件,其分层展示特性特别适合功能模块较多的应用场景。该组件通过内部维护的QStackedWidget实现页面管理,具有节省界面空间、提升用户体验的技术优势。在工业控制系统、教学软件、数据可视化平台等需要功能分组的场景中表现优异。通过样式定制和信号处理,开发者可以构建如传感器控制面板、开发工具箱等专业应用。本文以PyQt5 5.15.7版本为例,详细介绍QToolBox的核心用法与高级技巧。 阅读详情

相关推荐

Python学习笔记—— PC端开发

or。

wwwwrrrrwr的博客 613

从新手小白入门Qt编程(Windows 10)

Qt是由Qt Company开发的主流跨平台C++图形用户界面应用程序开发框架。Qt是面向对象的框架、容易扩展,并且允许真正地组件编程,既可以开发GUI程序,也可用于控制台工具和服务器。其跨平台集成开发环境Qt Creator 全面支持Windows ,mac、Linux、iOS、Android、WP等。本课程主要帮助学员熟练掌握Qt 5.9框架下的C++开发,通过核心类的详细讲解与源码分析,以及所有UI控件的讲解演示,迅速帮助学员达到企业级Qt开发工程师的能力!

PyQt入门学习:QToolBox工具箱介绍及使用案例

我们学习了如何创建一个QToolBox实例,添加页面以及设置页面的标题和内容。在上面的示例中,我们首先获取页面的索引,然后使用setItemText()方法设置页面的新标题。接下来,我们创建一个包含标签的QWidget实例widget,并设置为页面的内容部分。在上面的示例中,我们创建了一个QToolBox实例tool_box,并使用addItem()方法添加了三个页面。我们可以通过获取页面的索引,然后使用setItemText()方法设置页面的标题,使用setItemWidget()方法设置页面的内容。

HackQuestR的博客 608

PyQt6 QToolBox工具盒控件

QToolBox控件又称为工具盒控件,它主要提供一种列状的层叠选项卡。

java1234的博客 702

PyQt学习笔记:工具箱和标签部件的用途及功能介绍

在PyQt中,工具箱(Toolbox)是一个常用的界面元素,用于组织和显示多个相关的工具或选项。工具箱通常作为一个侧边栏或者标签页的形式出现,让用户可以方便地在不同的选项之间切换和选择所需的工具。另外,标签部件(Tab Widget)也是一个常见的界面组件,用于在一个窗口中显示多个标签页,每个标签页上可以放置不同的内容。工具箱和标签部件是PyQt中常用的界面元素,用于组织和显示多个相关的工具或选项以及在一个窗口中显示多个标签页。标签部件是一个常见的界面组件,用于在一个窗口中显示多个标签页。

ByteHero的博客 315

PyQt开发样例: 利用QToolBox开发的桌面工具箱Demo

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一、引言 toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列的标签部件项(tabbed widget item),具体请见《PyQt(Python+Qt)学习随笔:工具箱(QToolBox)的用途及标签部件项(tabbed widget item)作用介绍...

老猿Python 1883

第15.32节 PyQt(Python+Qt)入门学习:containers容器类部件QToolBox工具箱介绍及使用案例

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一、概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有如下: toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列的标签部件项(tabbed widget item),每个标签部件项都有一个索引位置,位置索引是...

老猿Python 2335

PyQt开发实例:利用QToolBox创建桌面工具箱应用

在构造函数中,我们设置了窗口的标题和图标,并创建了一个QToolBox控件。然后,我们添加了三个工具,每个工具都有一个名称和文本描述,在每个工具中还添加了一个简单的标签作为示例。PyQt是一个Python GUI编程工具包,它提供了各种各样的控件和类,可以帮助我们轻松地创建漂亮的桌面应用程序。其中,QToolBox是一个很有用的控件,可以将多个部件组织成一个“工具箱”,用户可以通过切换来访问不同的工具或窗口。这是一个非常简单的示例,但是你可以根据自己的需要进一步扩展这个应用程序,并创建更多的工具和窗口。

持续更新 465

PyQt5工具箱:用QToolBox创建分层界面的极简指南

QToolBox是PyQt5中一个简单但强大的组件,用于创建分层、可折叠的界面。创建工具箱创建页面:每个页面是一个QWidget添加页面toolbox.addItem(page, "标题")记住:保持页面简单,合理分组,避免嵌套过深。工具箱最适合中等复杂度的配置界面和工具集合。

T20151470的博客 615

使用PyQt开发:使用QToolBox创建桌面工具箱(Python)

QToolBox提供了一种组织和显示多个工具的方式,每个工具都可以显示为一个选项卡,并且可以包含自定义的内容。本文将向您展示如何使用PyQt和QToolBox创建一个简单的桌面工具箱应用程序,并提供相应的源代码。在上面的代码中,我们创建了一个MainWindow类作为主窗口,并在其中添加了一个QToolBox小部件。使用PyQt和QToolBox,您可以轻松地创建一个功能丰富的桌面工具箱应用程序,以满足您的特定需求。然后,创建一个自定义的小部件类,用于显示工具的内容。安装完成后,我们可以开始编写代码。

BUG?不存在的! 344

利用QToolBox制作桌面工具箱的Python开发实践及源代码

QToolBox是Qt控件库中一个非常实用的类,它可以创建一个简单直观的界面,并使得用户可以方便地切换不同的工具箱。在本文中,我们将借助PyQt,在Python中使用QToolBox制作一个桌面工具箱。在主窗口类中,我们首先设置了窗口的标题和大小,并向主窗口中添加了一个QToolBox控件。然后,我们创建了三个QWidget控件,并将它们作为工具箱的内容添加到了QToolBox控件中。运行后,我们可以看到一个桌面工具箱界面,其中包含三个工具箱,每个工具箱中都有一个标签。

. 334

PyQt5 QToolBox界面分层设计与实战应用

GUI开发中,界面空间管理是提升用户体验的核心技术。PyQt5作为Python主流GUI框架,其QToolBox组件通过垂直折叠式布局实现高效空间利用,原理上采用QStackedLayout管理多个可折叠页面,每个页面包含可定制的标签头和内容区域。这种设计模式特别适合参数设置、多功能工具集成等场景,既能保持界面简洁,又能快速访问复杂功能。通过addItem()等API可灵活控制页面行为,结合QSS样式表能实现现代化视觉呈现。在工业控制软件、3D建模工具等需要分层展示大量参数的场景中,QToolBox的空间效

weixin_29597551的博客 220

第二十六章、containers容器类部件QToolBox工具箱详解

老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一、概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有如下: toolBox工具箱是一个容器部件,对应类为QToolBox,在其内有一列从上到下顺序排列的标签部件项(tabbed widget item),每个标签部件项都有一个索引位置,位置索引是...

老猿Python 1536

Python3.x+PyQt5实现主窗体QToolBox导航栏抽屉效果与树形导航:开源项目推荐

Python3.x+PyQt5实现主窗体QToolBox导航栏抽屉效果与树形导航:开源项目推荐 去发现同类优质开源项目:https://gitcode.com/ 项目核心功能/场景 实现主窗体QToolBox导航栏抽屉效果与树形导航,方便用户模块切换和界面管理。 项目介绍 在现代软件开发中,构建直观、用户友好的图形用户界面(GUI)是提升用户体验的关键。Python3.x结合PyQt5库,为我们提...

gitblog_06760的博客 946

Crossformer实战:从零开始搭建多变量时间序列预测模型(附ETTh1数据集调参指南)

本文提供了从零开始搭建Crossformer多变量时间序列预测模型的实战指南,并附有详细的ETTh1数据集调参攻略。文章深入解析了Crossformer的核心设计,重点探讨了seg_len和win_size等关键参数对模型性能的影响,并分享了环境配置、训练调试及常见问题的解决方案,帮助开发者高效应用这一前沿深度学习模型。

weixin_29281915的博客 317

ICC2 实战秘籍:create_workspace 命令全解析

必选项:工作区名称,这可是创建工作区的 “身份证”,必不可少。技术数据选项匹配:优先考虑用 -technology 直接加载技术文件,这是获取最新、最准确技术数据的首选路径;要是已经有合适的技术库了,那 -use_technology_lib 引用现有技术库也能快速上手。精度设置优先规则:技术文件自动配置排在第一位,能自动适配就别手动操心;要是自动配置不理想,那就显式指定 scale_factor;实在没要求,就用默认配置,但得清楚它的精度限制。

weixin_50820814的博客 1123

PyQt6--Python桌面开发(23.QToolBox工具盒控件)

工具盒控件

qq_44623314的博客 247

群晖Lucky套件高级玩法-——更新证书同步更新群晖自带证书

群晖Lucky套件高级玩法-——更新证书同步更新群晖自带证书

wojuzi的博客 2452

PyQT5初使用

①QDockWidget 是 Qt 中用于创建可停靠的面板窗口的控件。它可以作为主窗口中的一个子部件,可以通过拖动和停靠的方式在主窗口的边缘或其他停靠区域之间移动和重新排列。QDockWidget 具有以下特点和功能:1)可停靠性:QDockWidget 可以停靠在主窗口的边缘(上、下、左、右)或其他 QDockWidget 实例的周围。2)标题栏:每个 QDockWidget 有一个标题栏,上面显示着标题和一个可用于关闭和浮动的按钮。

suners 489

Lumerical官方案例、FDTD时域有限差分法仿真学习(十八)——Y分支粒子群算法优化

组件优化是任何致力于开发高性能光子器件的设计过程的关键步骤。 此绝缘体上硅 Y 分支示例演示了适用于任意优化例程的通用组件形状参数化方法。 此示例中的算法是 Lumerical 的内置粒子群优化 (PSO),可通过用户界面轻松设置。 此外,建议的优化过程展示了如何将 varFDTD 与全 3D FDTD 求解器相结合,以显着减少优化时间,同时保持高精度。

weixin_45719141的博客 1万+

Tessent ICL语法详解:如何高效定义SIB、TDR和TAP模块

本文深入解析Tessent ICL语法,指导如何高效定义SIB、TDR和TAP模块以构建芯片测试网络。通过实战代码示例,详细阐述了各模块的端口声明、接口角色与核心寄存器定义,并提供了顶层集成连接方法与调试技巧,帮助DFT工程师精准描述测试仪器拓扑,提升Tessent工具链使用效率。

silver的专栏 492

QT6实战:QTableWidget合并单元格的3种方法对比(附完整代码)

本文深入探讨了在QT6开发中实现QTableWidget合并单元格的三种核心方法:使用setSpan()进行静态合并、通过继承QTableView实现动态逻辑控制以及利用QStyledItemDelegate进行像素级绘制。文章对比了各方法的优缺点、性能影响及适用场景,并提供了完整的代码示例,帮助开发者根据项目需求(如静态报表、动态数据驱动或特殊视觉效果)选择最优雅高效的解决方案。

7h6j5k4l3的博客 732

Oracle EBS R12 主 / 辅助分类帐(主 / 辅助帐套)落地

本文提供了Oracle EBS R12主/辅助分类帐实施的全套文档模板,包含主帐套(法定帐套)和辅助帐套的完整配置清单、科目映射规则模板、4类典型调整分录示例(存货跌价、折旧差异、往来重分类、外币折算)以及税会/IFRS案例分录。重点阐述了主/辅助帐套的配置要点、SLA子分类帐关键配置、科目映射规则(一对一、多对一、重分类等类型)以及调整分录的自动生成逻辑。文档可直接用于项目实施,包含总体架构图、科目映射矩阵表、会计规则集配置等交付物,并附有Excel版模板便于直接使用。适用于需要实现多准则并行记账、税务调

金牌架构师 386

pyqt项目22-QToolBox

提示:这里可以添加本文要记录的大概内容:提示:以下是本篇文章正文内容,下面案例可供参考提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

weixin_45536181的博客 449

【GameFramework框架】二、GameFramework框架介绍

Game Framework框架是由E大(Ellan Jiang)开源的一款基于Unity的通用游戏框架。Game Framework框架提供了游戏开发中常用的框架基础模块,将基础模型进行了封装,在资源管理和资源更新方面比较完善,可以大大加大开发进程,加快开发速度,并且还在在此此处上保证产品质量。实在是代码开发、框架学习、编程进阶、居家旅行哦不对,是提升自己的最佳实践。Game Framework框架。

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 5847

2023华为OD机试真题B卷 Python 实现【最长的元音子串长度】

定义当一个字符串只有元音字母(a,e,i,o,u,A,E,I,O,U)组成,称为元音字符串,现给定一个字符串,请找出其中最长的元音字符串,并返回其长度,如果找不到请返回0, 字符串中任意一个连续字符组成的子序列称为该字符串的子串

MISAYAONE的博客 900
上一篇: PyQt开发样例: 利用QToolBox开发的桌面工具箱Demo
下一篇: PyQt(Python+Qt)学习随笔:QTabWidget选项卡部件外观展示类属性elideMode、documentMode、tabBarAutoHide、tabShape介绍
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值