同步操作将从 sunshe35/PyQt6-codes 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
该项目是《PySide6/PyQt6快速开发与实战》源代码。
本人是书籍的作者,以下是本书的内容:
本书提供了PySide6和PyQt6两套源代码,这两套源代码在gitee或github都可以查到. 源代码在gitee和github上会同步更新,国内用户访问gitee速度更快一些。
github传送门:
PySide6-codes
PyQt6-codes
gitee传送门:
PySide6-codes
PyQt6-codes
本书共有9章,基本包含了PySide6/PyQt6涉及的绝大多数常用知识点及一些经典的应用。书中各个章节侧重点不同,相对独立,读者亦可把本书当做小百科书,根据目录即可获取自己所需的内容。
第1章介绍PySide/PyQt的入门知识,主要介绍PySide和PyQt的基本概念、PySide6/PyQt6的安装和使用(包括Qt Designer(Qt设计师)等工具的初步用法)、经典IDE(PyCharm、VSCode、Eric7)的安装与配置以及完整案例的运行。已经有一定基础的朋友可以略去这一章。
第2章介绍Qt Designer的详细用法。 Qt Designer是一个PySide/PyQt的可视化界面编辑程序,它的作用是通过鼠标拖拽等可视化操作就可以快速开发出GUI文件(.ui文件),我们可以通过官方提供的uic工具把.ui文件自动转换成我们熟悉的*.py文件。在本章,可以很直观的看到一个完整的PySide/PyQt程序开发流程,如窗口布局、设置快捷键、信号与槽的绑定、菜单栏与工具栏、添加与使用资源文件等等。对PySide/PyQt初学者来说,本章内容是快速入门和快速进步的最重要章节。
第3章和第4章介绍PySide/PyQt的基本窗口控件的使用方法。我们在第一章介绍了PySide/PyQt的环境配置,第二章介绍了PySide/PyQt完整开发流程,接下来最想知道的是PySide/PyQt有哪些常用控件以及如何使用这些控件?这就是这两章要解决的问题。原本这些内容应该放在一章中,但是因为内容太多所以要拆分成2章。可以看到,这部分内容经过极限压缩之后也有200页篇幅,内容足够丰富。如果读者的时间并不充裕,只对部分控件感兴趣,则可以选择相应的小节阅读。
第5章介绍PySide/PyQt的特殊控件——表格与树。本章主要介绍表格与树的用法,入门起来也非常简单。如果想要更进一步,还需要理解Model/View/Delegate(模型/视图/委托)框架,这也是表格与树特殊性的原因。此外,数据量较大的表格往往需要数据库支撑,所以数据库相关内容也在本章涉及。
第6章介绍一些高级窗口控件,会介绍除了3-5章之外的其他常用控件或内容,也是介绍控件的最后一章。本章介绍的控件相对高级一些,比较常用的是布局管理与多窗口控件(容器)。本章也会介绍窗口风格、多线程、网页交互、样式表QSS等内容,最后以Qt Quick(QML)收尾。
第7章介绍信号/槽和事件。本章对PySide/PyQt的高级内容进行收尾,是介绍PySide/PyQt框架的最后一部分内容。之前的章节已经初步学习了信号/槽的使用方法,但不够详细,本章会对信号/槽和事件进行系统性的介绍,比如内置信号/槽、自定义信号/槽、装饰器信号/槽、信号/槽断开与连接、多线程信号/槽、事件处理的常用方法等。
第8章介绍Python的扩展应用。前面1-7章介绍的是PySide/PyQt框架内的内容,本章介绍Python对PySide/PyQt的扩展。学习PySide/PyQt的一大好处是可以结合Python生态提高开发效率。Python生态非常多,本章只会介绍部分常用生态如PyInstaller、Pandas、Matplotlib、PyQtGraph、Plotly等,使用这些生态可以帮助我们更快的开发出GUI程序。
第9章介绍PySide/PyQt的实战应用。由于本书内容太多,删减了一些案例,最后只保留2个应用供读者参考。一个是作为量化投资的GUI显示,另一个是券商投研中基于网络爬虫的GUI界面。
此外,本书附录内容也很重要,供读者参考:
附录A:介绍PySide/PyQt各个版本之间相关转换的问题,主要介绍两部分内容:
附录B:通过一个案例分析如何把Qt的C++代码转换成PySide/PyQt的Python代码。Qt的生态还是要比PySide/PyQt更丰富一些,有时候需要把Qt的demo转换成PySide/PyQt的demo,可参考该章节。
附录C:列出一些常用表格目录。本书有很多枚举、属性、函数参数等用法以表格形式呈现,绝大部分表格可以根据目录快速定位到,有些表格比较常用但又没办法快速定位,会在这里列出。
附录D:列举一些笔者了解的基于PySide/PyQt的优秀开源项目。本书只会对这些项目进行简单介绍,感兴趣的读者可自行研究。
本书同样提供了可运行本书所有案例的PySide6/PyQt6免安装版环境,仅适用于windows系统。该环境是一个压缩包,解压缩后即可使用,不会影响系统的默认环境,适合对Python刚入门的新手或不想为本书重新安装一个环境的老手。
本书提供了PySide6和PyQt6两套独立环境,对应Qt版本6.2.3,都是基于WinPython封装。理论上来说使用更高版本的PySide6/PyQt6也是可以跑通本书代码的。
WPy64-3870-pyside6.zip
文件。WPy64-3870-pyqt6.zip
文件。运行环境可通过百度云获取,链接:https://pan.baidu.com/s/1DM2sqr_6dK4AbWBA4BaMMg?pwd=cfwf 提取码:cfwf
由于本书内容太多,为减轻读者负担,必须节约篇幅以降低定价。因此剥离出部分章节内容,以附赠电子版的形式呈现出来。附赠电子版与源代码放在一起,路径为“appendix/《PySide6-PyQt6快速开发与实战》附赠电子版.pdf”,这部分内容有40+页。
Python是世界上最广泛、最简单的编程语言之一,Qt是世界上最好的桌面程序开发库之一。PyQt是Python与Qt结合的产物,PyQt借助Qt和Python两大生态,一诞生就广受欢迎,可以说是Python中应用最广泛的桌面程序开发(GUI)库。由于PyQt是Python与Qt的结合,所以它既可以利用Python强大而又简洁的语法和强大的生态,又不会丢失Qt强大的功能。从Python的角度来说,PyQt可以使用Python简洁、易用性的语法,提高开发效率;也可以使用Python的成熟生态,如数据分析、网络爬虫、人工智能等场景都可用PyQt开发GUI。从Qt的角度来说,由于PyQt完成了对Qt的所有类的封装,因此,PyQt可以使用Qt的所有生态开发出丰富的GUI程序。Qt生态中最方便的是Qt Designer(Qt设计师)这种代码生成器,它可以通过鼠标拖拽的方式快速度完成GUI设计,然后生成Python代码,对于初学者来说这是实现快速入门的最方便的工具。由于充分利用了双方的优点,所以我们用PyQt开发GUI会有一些意外收获,比如说有些程序逻辑在Qt中实现会比较复杂,而在PyQt中却很简单。
事实上PyQt是第三方提供的Qt for Python绑定,而Qt官方提供的Python绑定为PySide。PySide几经易手,在2016年才逐渐得到Qt官方的支持,第一个发布的版本在2018年,是基于Qt5.11的PySide2。对比PyQt5在2016年发布的第一个基于Qt5.6的版本。PyQt最早可以追溯到1998年的PyQt0.1,到PyQt1、PyQt2、PyQt3、PyQt4、PyQt5以及最新的PyQt6(截至2022年8月,最新版基于Qt6.3),并且实现了PyQt与Qt的同步更新。随着最近几年PySide2的逐渐完善我们有了除PyQt之外的另一个选择,在此之前基本只会选择PyQt。PySide和PyQt都是Qt对Python的绑定,两者绝大部分方法和用法都一样,两者之前的代码相互转换也非常容易,对于初学者来说随便选取一种学习即可。我们需要了解的是PySide/PyQt4是基于Qt4的绑定、PySide2/PyQt5基于Qt5、本书介绍的PySide6/PyQt6基于Qt6。不像Qt5对比Qt4的大版本改动,Qt6相对于Qt5变化很小。学习PySide6/PyQt6的好处是原来PySide2/PyQt5的绝大部分案例拿来就能用,少部分代码微调一下就能运行。因此,对于想要学习GUI的朋友来说,从PySide6/PyQt6开始是最好的选择。
本书《PySide6/PyQt6快速开发与实战》(简称《PySide6/PyQt6》)可以说是《PyQt5快速入门与实战》(简称《PyQt5》)的第二版。在编写《PyQt5》的时候,PySide2第一版还未发布,关于PyQt5的中文书籍还未上市,市面上仅有PyQt4的相关书籍。考虑到网络上关于PyQt5的学习案例知识点都非常零碎,对于新手来说想要入门PyQt5是非常痛苦的事情,解决这个问题是写作《PyQt5》的初衷。
令人欣慰的是,随着PyQt生态的发展和完善,关于PyQt5相关的资料开始变得丰富起来,有多本PyQt5相关书籍先后上市,对PyQt爱好者来说多了一些选择,这是非常好的一个事情。Qt涉及的知识点非常多,对于新手来说,最关心的问题可能是如何快速获取重要知识点以及快速掌握知识点的用法。比较遗憾的是,市面上的资料侧重点各有不同,都无法满足这个需求。当然,本书第一版《PyQt5》由于准备时间和水平都不足,有很大的缺陷,亦不能很好的满足这个需求。这些缺陷都会在本书第二版《PySide6/PyQt6》中完善,这就是《PySide6/PyQt6》写作的初衷。
《PySide6/PyQt6》既可以说是《PyQt5》的第二版,也可以说是一本新书。与《PyQt5》相比,《PySide6/PyQt6》重写了70%以上的内容,知识点增加了至少一倍,基本包含了新手学习PySide6/PyQt6所需掌握的绝大多数内容。《PySide6/PyQt6》的写作要比《PyQt5》辛苦很多,前后花费了有1年多的时间,这是一个非常吃力又不讨好的辛苦差事。之所以愿意吃这个苦完成本书写作,最主要原因是市场上确实缺少一本适合新手快速入门PySide6/PyQt6的资料,其次是《PyQt5》确实存在一些缺陷需要修复,再加上黄爱萍编辑多次诚恳邀请,笔者最终决定完成本书写作。
在本书开始写作的时候,PySide生态已经非常完善,尤其是PySide6的更新速度比PyQt6还要快,于是决定对PySide6/PyQt6都给予支持(会提供PySide6和PyQt6两套源代码),所以本书命名为《PySide6/PyQt6快速开发与实战》。经过笔者的不懈努力,对本书的最终结果还算满意。总的来说,本书的内容对得起本书的名称。你也可以把本书作为PySide6/PyQt6的小百科,因为PySide6/PyQt6涉及的绝大多数常用知识点在本书中都有涉及,且内容足够丰富。如果你想要快速入门PySide/PyQt,那么本书绝对可以满足你的需求;如果你有更高的需求,建议直接查阅Qt官方帮助文档,因为第三方资源可能满足不了你在细分领域的专业需求。
经过一年多的不懈努力,《PySide6/PyQt6》终于出版,希望本书能够帮助更多的朋友快速掌握PySide6/PyQt6开发技术,少走弯路,节约时间成本。在笔者最初接触PyQt的时候,查找各种资料非常痛苦,因此如何让更多的人减轻这种痛苦是我完成本书的最大动力,本书的出版就是要解决这个问题。本书若能帮助更多的朋友快速入门PySide6/PyQt6,是我莫大的荣幸。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。