有没有专门针对PyQt5的教程



我正在寻找PyQt5教程。在没有教程的情况下,第一次使用Python开始GUI开发是相当复杂的。

到目前为止,我只找到了一些PyQt4教程,由于某些内容从Qt4更改为Qt5,例如SIGNALSLOT在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层:

  1. 模型 ~>封装数据。将对基础数据的任何更改通知View和Controller。这会分别更新输出或可用命令的显示
  2. 视图 ~>显示从模型到用户的相关输出
  3. 控制器 ~>封装用户交互,并通知模型和视图相关事件

模型视图

  • 图形视图框架(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/这是一个新手友好的教程

相关内容

  • 没有找到相关文章

最新更新