python、qt和qml的实时编码
python-qt-live-coding的Python项目详细描述
python、qt和qml的实时编码环境
这个项目为python和qt提供了一个实时的编码环境。它同时支持PyQt和Qt for Python (PySide2) 通过python_qt_binding。
另请参见:
- My blog post about Qt/QML live coding
- {A9}:这个项目的C++版本。
- Lightning Talk from QtDay.it 19
安装
要安装实时编码环境,请运行:
python setup.py install
或通过PIP安装
pip install python-qt-live-coding
您还需要安装pyqt或pyside2才能使此应用程序正常工作。最快的方法 实现这一点就是使用pip。
pip install PyQt5
或
pip install pyside2
使用
live编码环境附带了一个live runner,它使您能够 快速编写qt guis代码。
运行以下命令以试驾示例:
python_qt_live_coding examples
您将立即在live runner中看到示例项目。
现在您可以选择MainScreen.qml
文件或在过滤器中键入MainScreen
。
键入时,将自动选择该文件。
加载后,您将看到以下内容。
这是live runner中的示例gui。
现在按Edit
按钮。你最喜欢的文本编辑器应该立即打开。
在编辑器中编辑代码,当您保存文档时,您将看到gui立即更新。
集成到应用程序中
或者,可以将实时编码集成到python qt应用程序中。
如果您想根据自己的需要自定义实时编码gui,这一点尤其有用。
为此,您需要执行以下操作:
- 将
start_live_coding
函数集成到main.py
中。 - 添加用于实时编码的命令行参数。
- (可选)添加自定义
live.qml
。
若要了解有关如何工作的更多信息,请查看integrated example。
python qml模块支持
实时编码环境内置了对python qml模块的支持。
的想法是将QML和Python代码放在同一个目录中,类似于如何创建Qt/C++应用程序。 另外,有了python,我们的优势是能够自动发现模块。
为此,将register_qml_types
函数添加到python qml模块的__init__.py
中。
请参阅examples/standalone/module/__init__.py中的示例。
但是,到目前为止还不支持自动重新加载python代码。
当您使用python模块时,请使用Restart
按钮来重新启动实时编码应用程序。
强制pyqt或python使用qt(pyside2)
在某些情况下,您可能希望强制使用哪个python qt绑定python_qt_live_coding
。
这可以通过通过命令行传递可选的--binding
参数来完成。
python_qt_live_coding -b pyside .
PyCharm支持
要使此应用程序与PyCharm和其他IntelliJ IDE协同工作,请禁用“安全写入”功能。 此功能在保存任何文件之前写入临时文件,这可能会混淆文件更改观察程序。