Live coding for Python, Qt and QML
Project description
Live Coding Environment for Python, Qt and QML
This project provides a live coding environment for Python and Qt. It supports both PyQt and Qt for Python (PySide2) via the python_qt_binding.
See also:
- My blog post about Qt/QML live coding
- cpp-qt-live-coding: The C++ version of this project.
- Lightning Talk from QtDay.it 19
Install
To install the live coding environment run:
python setup.py install
or install it via pip
pip install python-qt-live-coding
You also need to install PyQt or PySide2 for this application to work. The quickest way to achieve this is to use pip.
pip install PyQt5
or
pip install pyside2
Use
The live coding environment comes with a live runner which enables your to live code Qt GUIs quickly.
Run following to test drive the example:
python_qt_live_coding examples
Your will instantly see the example project in the live runner.
Now you can either select the MainScreen.qml
file or type MainScreen
in the filter.
When you type, the file will be automatically selected.
When loaded you will see following.
This is the example GUI inside the live runner.
Now press the Edit
button. Your favorite text editor should open promptly.
Edit the code inside the editor und you will see the GUI updates instantly when you save the document.
Integrate in your application
Alternatively, you can integrate live coding into your Python Qt application.
This especially useful if you want to customize the live coding GUI for your needs.
For this purpose you need to do following things:
- Integrate the
start_live_coding
function into yourmain.py
. - Add a command line argument for live coding.
- Optionally, add a custom
live.qml
.
To learn more about how this works please take a look the integrated example.
Python QML module support
The live coding environment has built in support for Python QML modules.
The idea is to place QML and Python code in the same directory, similar to how you would create a Qt/C++ application. Additionally, with Python we have the advantage of being able to discover modules automatically.
For this purpose add register_qml_types
function to the __init__.py
of your Python QML module.
See the example in examples/standalone/module/__init__.py.
However, so far automatic reloading of Python code is not support.
When you work on a Python module please use the Restart
button which restarts the live coding application instead.
Forcing PyQt or Python for Qt (PySide2) usage
In some cases you might want to force which Python Qt binding python_qt_live_coding
is using.
This can be done by passing the optional --binding
argument via the command line.
python_qt_live_coding -b pyside .
PyCharm Support
For this application to work with PyCharm and other IntelliJ IDEs please disable the "safe write" feature. The feature writes a temporary file before saving any file, which can confuse the file change watcher.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file python-qt-live-coding-0.4.3.tar.gz
.
File metadata
- Download URL: python-qt-live-coding-0.4.3.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddba3f6a7f975477dfd9a0b5052df6eb2185e3fd4281373fef63fbb9125538be |
|
MD5 | b2f92b1030296a87c30734bd3c1b4a6a |
|
BLAKE2b-256 | 6cbe0bf6e5379c87370c1e29c7703451439a1a2f6003c4b4cd0cb2b62c682fab |