我正在寻找 PyQt5 教程。在没有教程的情况下,第一次使用 Python 开始 GUI 开发是相当复杂的。
到目前为止,我只找到了一些 PyQt4 教程,并且由于从 Qt4 到 Qt5 发生了一些变化,例如 Qt5 不再支持这一事实SIGNAL
,SLOT
因此如果有针对 PyQt5 的特定教程会很好。
有人可以提供有关如何使用 PyQt5 开始 GUI 开发的教程吗?
我正在寻找 PyQt5 教程。在没有教程的情况下,第一次使用 Python 开始 GUI 开发是相当复杂的。
到目前为止,我只找到了一些 PyQt4 教程,并且由于从 Qt4 到 Qt5 发生了一些变化,例如 Qt5 不再支持这一事实SIGNAL
,SLOT
因此如果有针对 PyQt5 的特定教程会很好。
有人可以提供有关如何使用 PyQt5 开始 GUI 开发的教程吗?
随着我继续深入 PyQt5 的深度,我是否应该继续用我发现的一些更闪亮的宝藏来更新这个答案。
话虽如此,我现在正在快速介绍 PyQt5。我还将提供有用资源的链接。我也是这个框架的新手,我将详细说明我认为使用它的好策略,因为我想出了这个策略。可能还有其他好的策略,所以如果有人有什么要补充的,请发表评论。这是一项正在进行的工作。
正如其他答案中所建议的那样,我从示例代码中学到了很多东西,但是这些示例没有帮助的是 PyQt5 的深层魔力。具有很多魔力的框架(PyQt5、Django、SQLAlchemy 等)非常棒,因为大量的苦差事从你身上抽离出来。另一方面,并不总是清楚到底发生了什么,或者你应该怎么做。
幸运的是,我们似乎有选择:
QtDesigner:当你的键盘着火时,安装包中有一个摇滚的 GUI-Builder。当您看到它生成的代码时(可能仅在社区版本中?),您会明白为什么这可能不是它看起来的灵丹妙药。
QML:另一种灵丹妙药:从格式化的 JSON 构建声明性 GUI。嗯。
Qt Quick:QML 的框架。在这一点上,它可能看起来非常容易,但不要被这些东西所吸引。它似乎总是归结为手工学习。
模型视图框架(1):模型视图(不是 MVC)将处理表示/交互的代码与管理数据的代码分开,目的是提供模块化。
PyQt5 中的编码通过使用实现模型视图设计模式的一组类大大简化。Model-View 是 Model-View-Controller (MVC) 的演进,其中 Controller 与 View 重新统一。他们看起来像是奇怪的伙伴,但是,程序的大部分逻辑要么是处理用户,要么是处理数据:这似乎有一定的意义,至少在平流层层面上是这样。
鸟瞰:
模型-视图-控制器
这种广泛使用的设计模式将应用程序分为 3 层:
模型视图
这种设计模式将控制器放在视图中。这样,视图就能够处理整个用户交互。具体来说,这些是信号和槽机制。
回调
信号和插槽
..... ** 对不起,我现在必须签字。我会回来继续添加这个。**
例如,您可以从示例中获取树视图itemviews/editabletreemodel
,然后从示例中换入文件系统模型 ( QFileSystemModel
) itemviews/dirview
,您将获得目录树的完整(工作)视图。相当时髦。
因此,您可以从 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++),我发现它很快教会了我很多东西。
我刚刚开始使用 Graphics View,并且发现这个关于 Graphics View Framework 的教程非常有帮助。qtdemo
这与示例代码中用于生成一些流畅效果的视图相同。我稍后会更新这个。
正如 katsh 在另一个答案的评论中指出的那样,这里是 GitHub 上 PyQt5.2.1 示例代码的链接
此外,示例代码的副本与您的发行版一起打包,可在以下位置找到:
%PYTHON_HOME%\Lib\site-packages\PyQt5\examples
如果您使用的是 PyDev (Eclipse),您只需在 PyDev Package Explorer 或 Navigator =:> Run As =:> Python Run 中右键单击示例的主模块文件即可运行示例
最好的,在我(不是这样)谦虚的意见中,是:
%PYTHON_HOME%\Lib\site-packages\PyQt5\examples\qtdemo\qtdemo.py
在我目前的项目中,我正在对这个示例进行逆向工程。如果你检查一下,你就会明白为什么。未完待续.. ;)
享受!
一段时间以来一直在寻找 PyQt5 教程?不要再看了!你不会在互联网上找到很多。
不是真正的教程,而是以下路径下的非常不言自明的基本脚本:
/python/lib/site-packages/PyQt5/examples
您将在从初学者到高级的文件夹中找到100
示例,涵盖基本窗口、菜单、选项卡、布局、网络、OpenGL 等。30