长期更新中,敬请期待……
学习资料整理
PyQt5
- 官方参考文档
- ZetCode 教程
- PyQt5 & Qml 结合教程
- The Hacker University 教程 其一 其二
PyQt4/5
Eric IDE
笔记
有关app.exec_()
的下划线问题
QApplication 类的下划线方法 exec_() 来自 PyQt4 以及以前,因为在 Python 2 中,exec 是一个 Python 关键字。这个问题在 Python 3 中已经解决,故如果你的代码只在 Python 3 下运行,你完全可以写成:
app.exec()
的形式。当然,带上下划线的方法为了保持向后兼容还是可以使用的。
有关qApp
和QApplication
之间的关系
简单地说,就像下面这样:
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.