我正在寻找一份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: 声明式GUI构建的另一个选择。美味。
Qt Quick: 用于QML的框架。现在看起来非常简单易懂,但是别被这些东西吸引住了。你总是需要亲手学习。
模型-视图框架(1): 模型-视图(而不是MVC)将处理演示/交互的代码与管理数据的代码分开,以提供模块化。
通过使用实现Model-View设计模式的一组类,编写PyQt5代码变得极为简化。 Model-View是Model-View-Controller(MVC)的进化版,在其中Controller已重新与View合并。它们似乎是奇怪的床伴,但是大多数程序逻辑都处理用户或数据:至少在高空层面上,它们看起来有一定的道理。
从鸟瞰图上看:
模型-视图-控制器
这种广泛使用的设计模式将应用程序分成3层:
模型-视图
这种设计模式将控制器置于视图内部。这样,视图能够处理用户互动的全部内容。具体来说,这是通过信号(Signals)和槽(Slots)机制实现的。
回调
信号和槽
..... ** 很抱歉,但我现在必须下线了。我会回来继续添加内容的。**
例如,您可以从 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的Model-View的教程。(1)这是来自官方Qt5文档的非常详细的文件。 在Qt5网站上可以找到大量有用的文档。 请记住,这是针对Qt5(C++库),但读起来区别微不足道(并且PyQt5官方文档指向那里)。
此PDF包含有关PyQt4的Model-View框架的快速高级说明。请注意,它是针对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包资源管理器或导航器中右键单击示例的主模块文件 =:> 运行为 =:> Python运行来运行示例。
在我(不太)谦虚的意见中,最好的方法是:
%PYTHON_HOME%\Lib\site-packages\PyQt5\examples\qtdemo\qtdemo.py
在我的当前项目中,我正在进行对这个示例的逆向工程过程。如果你查看它,你就会知道原因了。待续.. ;)
享受吧!
寻找PyQt5教程已经有一段时间了吗?不用再找了!因为在互联网上很难找到大量的教程。
但是您可以在下面的路径中找到非常易懂的基础脚本,虽然它们不是真正的教程:
/python/lib/site-packages/PyQt5/examples
您会发现大约有30个文件夹里有100个示例,这些示例从初学者到高级使用者都有,涵盖了基本窗口、菜单、选项卡、布局、网络、OpenGL等。
pip3
无法安装示例。/usr/local/lib/python3.6/site-packages/PyQt5/examples
路径不存在。 - Anton Tarasenko