我正在寻找PyQt5教程。在没有教程的情况下,第一次使用Python开始GUI开发是相当复杂的。
到目前为止,我只找到了一些PyQt4教程,由于某些内容从Qt4更改为Qt5,例如SIGNAL
和SLOT
在Qt5中不再受支持,因此最好为PyQt5提供特定的教程。
有人能提供一个关于如何使用PyQt5开始GUI开发的教程吗?
随着我进入PyQt5深处的旅程的继续,我应该继续用我发现的一些更闪亮的宝藏来更新这个答案吗。
话虽如此,我现在正在对PyQt5进行一次"粗略的介绍"。我还将提供有用资源的链接。我也是这个框架的新手,在我制定这个战略时,我将详细阐述我认为使用这个框架的好策略。可能还有其他好的策略,所以如果有人想补充什么,请留言评论。这在很大程度上是一项正在进行的工作。
策略
正如另一个答案中所建议的,我从示例代码中学到了很多东西,但PyQt5的深层魔力对示例没有帮助。具有很多魔力的框架(PyQt5、Django、SQLAlchemy…)非常棒,因为大量的繁琐工作都被抽象掉了。另一方面,并不总是清楚到底发生了什么,或者你应该怎么做
幸运的是,我们似乎有选择:
-
QtDesigner:在那些键盘着火的日子里,安装包中会调用一个rockin'GUI Builder。当你看到它产生的代码(也许只在社区版本中?),你就会明白为什么这个可能不是看起来的灵丹妙药。
-
QML:万灵药的另一个候选者:从格式化的JSON构建声明性GUI。呀呣
-
Qt Quick:QML的框架。到目前为止,这可能看起来非常容易,但现在还不要被这些东西所吸引它似乎总是归结为手工学习
-
模型视图框架(1):模型视图(而不是MVC)将处理表示/交互的代码与管理数据的代码分离开来,目的是提供模块化。
PyQt5中的编码通过使用实现模型视图设计模式的一组类大大简化了。模型视图是模型-视图-控制器(MVC)的演变,其中控制器与视图重新组合。他们看起来像是奇怪的同床异梦,但程序的大部分逻辑都是处理用户或数据:至少在平流层层面上,这似乎有一定的意义。
鸟瞰图:
体系结构
模型视图控制器
这种广泛使用的设计模式将应用程序分为3层:
- 模型 ~>封装数据。将对基础数据的任何更改通知View和Controller。这会分别更新输出或可用命令的显示
- 视图 ~>显示从模型到用户的相关输出
- 控制器 ~>封装用户交互,并通知模型和视图相关事件
模型视图
- 图形视图框架(1)~>将QGraphicsScene内的所有内容(包括嵌入的QWidget等)表示为QGraphicsItem(或其衍生物),包括用于嵌入小部件的代理类。这些项目被认为是高度优化的,集成OpenGL支持是一个单行线,这很好
此设计模式将控制器置于视图中。通过这种方式,视图能够处理整个用户交互。具体来说,这些就是信号和插槽机制。
用户交互管理
回调
信号和插槽
…..**对不起,我现在必须签字。我会回来继续添加。**
实例
例如,您可以从itemviews/editabletreemodel
示例中获取一个树视图,然后从itemviews/dirview
示例中交换一个文件系统模型(QFileSystemModel
),就可以获得目录树的完整(工作)视图。相当时髦。
因此,您可以从editabletreemodel中获取代码示例:
headers = ("Title", "Description")
file = QFile(':/default.txt')
file.open(QIODevice.ReadOnly)
model = TreeModel(headers, file.readAll())
file.close()
self.view.setModel(model)
并从dirview:中交换模型
model = QFileSystemModel()
model.setRootPath('')
self.view.setModel(model)
而且效果很好。太神了
下一步(在我的情况下)(*我认为)是实现一个自定义模型,然后我将同时使用多个视图,但我不知道这是否适合您的用例。
资源
以下是我在旅行中发现的一些宝石。希望他们能帮助你。
这是一个关于Qt5模型视图的教程。(1)这是一份来自Qt5官方文档的非常详细的文档。在Qt5网站上可以找到大量有用的文档。请记住,这是针对Qt5(C++库)的,但通读起来差别很小(PyQt5官方文档也指出了这一点)。
此PDF包含PyQt4的模型视图框架的快速高级版本。注意,它是针对PyQt4(而不是PyQt5)的,但它实际上是针对Python(与C++相反)的,我很快发现它教会了我很多。
我刚开始玩图形视图,我发现这个关于图形视图框架的教程非常有用。这与qtdemo
示例代码中用于生成一些光滑效果的视图相同。我稍后会更新这个。
这是所有Qt5模块的完整列表。
这是所有Qt5类的完整列表。
这是Qt5 API中所有函数的完整列表。
正如katsh在另一个答案的评论中指出的那样,这里有一个链接,指向GitHub 上PyQt5.2.1的示例代码
此外,示例代码的副本与您的发行版一起打包,可以在以下位置找到:
%PYTHON_HOME%Libsite-packagesPyQt5examples
如果您使用的是PyDev(Eclipse),只需在PyDev Package Explorer或Navigator=:>run As=:>Python run 中右键单击示例的主模块文件即可运行示例
在我看来,最好的是:
%PYTHON_HOME%Libsite-packagesPyQt5examplesqtdemoqtdemo.py
在我目前的项目中,我正在对这个例子进行逆向工程。如果你检查一下,你就会明白为什么。待续..;)
享受吧!
寻找PyQt5教程已经有一段时间了?别再看了!你在网上找不到很多。
不是真正的教程,但非常不言自明的基本脚本在以下路径下:
/python/lib/site-packages/PyQt5/examples
您将在30
文件夹中找到有关100
的示例,从初学者到高级,涵盖基本窗口、菜单、选项卡、布局、网络、OpenGL等。
看看http://www.thehackeruniversity.com/2014/01/23/pyqt5-beginner-tutorial/这是一个新手友好的教程