PyQt5 学习笔记

长期更新中,敬请期待……

学习资料整理

PyQt5

PyQt4/5

Eric IDE


笔记

有关app.exec_()的下划线问题

QApplication 类的下划线方法 exec_() 来自 PyQt4 以及以前,因为在 Python 2 中,exec 是一个 Python 关键字。这个问题在 Python 3 中已经解决,故如果你的代码只在 Python 3 下运行,你完全可以写成:

app.exec()

的形式。当然,带上下划线的方法为了保持向后兼容还是可以使用的。

有关qAppQApplication之间的关系

简单地说,就像下面这样:

PyQt5.QtWidgets.qApp = self # in __init__()

实际上,使用QApplication.instance()可能会减少一些麻烦。
参考来源:PyQt 邮件列表

配合使用 QML 与 QtQuick

自从 Qt 5 发布以来,基于 Qml 的 QtQuick 似乎已经成为了替代 QtWidgets 的下一代 GUI 解决方案。有必要跟踪了解其信息。

QML 的特点

QML 是Qt Meta/Model Language的缩写。它自称为declarative language(声明式语言),且在不足之处采用了JavaScript以实现复杂的功能。QML 使用了类似 CSS 和 JavaScript 的语法(即,大括号、冒号键值对)。实际上,它作为一门编程语言,可以独立运行,也可以和 C++ 或者 Python(使用 PyQt5)一起组成应用程序。
如果要系统地学习在 Qt 中使用 QML,建议参考 Qt 的教程:http://doc.qt.io/qt-5/qtqml-index.html
下面简单在学习中总结一下 QML 的语法特点:

  • 和 JavaScript 结合紧密。各种意义上。
  • 独立文档使用.qml的后缀名,作为纯文本文件存在。没有类似#!的语法。
  • 注释的书写方式参考JavaScript。http://doc.qt.io/qt-5/qtqml-syntax-basics.html#comments
  • 在每个文档开头可以有数个import语句,用来引入模块(类似 Python,但是必须指定模块版本号)、引入资源所在的文件夹、或者引入 QML 中使用的外部 JavaScript 脚本。http://doc.qt.io/qt-5/qtqml-syntax-imports.html
  • 行末没有分号。如果需要把多个语句写在一行,应当加上分号以分隔语句。

To be continued.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注