All Projects → machinekoder → python-qt-live-coding

machinekoder / python-qt-live-coding

Licence: MIT license
Live coding environment for Python, Qt and QML.

Programming Languages

python
139335 projects - #7 most used programming language
QML
638 projects

Projects that are alternatives of or similar to python-qt-live-coding

Scihubeva
A Cross Platform Sci-Hub GUI Application
Stars: ✭ 683 (+1851.43%)
Mutual labels:  qml, pyqt, qtquick
youtube-downloader
youtube-dl GUI simplify
Stars: ✭ 22 (-37.14%)
Mutual labels:  qml, pyside2
Qml Box2d
Box2D QML plugin
Stars: ✭ 223 (+537.14%)
Mutual labels:  qml, qtquick
neural-network-sandbox
A toy about fundamental neural network algorithms and Qt Quick 2 interface.
Stars: ✭ 69 (+97.14%)
Mutual labels:  qml, pyqt
qt-quick-responsive-helper
A simple toolbar for QtQuick based applications, to let developers test different resolutions and dpi settings easily. It was made to be integrated with minimal effort (only one QML file), and to be configurable for your specific usage.
Stars: ✭ 26 (-25.71%)
Mutual labels:  qml, qtquick
Wellchat
WellChat is a Application that is a WeChat-like APP by qml.好吧~原谅我的英语。这个一个使用qml来仿制安卓微信的Qt程序,可以运行在安卓上。
Stars: ✭ 174 (+397.14%)
Mutual labels:  qml, qtquick
qml-ar
Seamless Augmented Reality module for QML using UchiyaMarkers
Stars: ✭ 32 (-8.57%)
Mutual labels:  qml, qtquick
Qtquickvcp
A Virtual Control Panel for Machinekit written in Qt/C++/QML
Stars: ✭ 104 (+197.14%)
Mutual labels:  qml, qtquick
QtMobileApp
This repository contains basic template for Qt for mobile app development using QML and C++ as backend to access RESTful API's
Stars: ✭ 16 (-54.29%)
Mutual labels:  qml, qtquick
Project-Template
A template for modern C++ projects with useful features for developing cross-platform products.
Stars: ✭ 44 (+25.71%)
Mutual labels:  qml, qtquick
QaterialGallery
🖼️ Qaterial Library Showcase.
Stars: ✭ 85 (+142.86%)
Mutual labels:  qml, qtquick
Flat.qml
FlatUI by qml, 参考FlatUI设计的一套qml控件
Stars: ✭ 164 (+368.57%)
Mutual labels:  qml, qtquick
Autoannotationtool
A label tool aim to reduce semantic segmentation label time, rectangle and polygon annotation is supported
Stars: ✭ 113 (+222.86%)
Mutual labels:  qml, qtquick
Stackoverflow
my answers in Stack Overflow
Stars: ✭ 211 (+502.86%)
Mutual labels:  qml, pyqt
Qaterial
🧩 Collection of Material Components based on QtQuickControls2.
Stars: ✭ 110 (+214.29%)
Mutual labels:  qml, qtquick
qt-qrcode
Qt/C++ library for encoding and visualization of data in a QR Code symbol
Stars: ✭ 35 (+0%)
Mutual labels:  qml, qtquick
TreeEdit
Qml TreeEdit with Controls2 (Qml树结构编辑器,使用Controls2实现)
Stars: ✭ 50 (+42.86%)
Mutual labels:  qml, qtquick
Kaidan
[Replaced by https://invent.kde.org/network/kaidan] Kaidan, a simple and user-friendly Jabber/XMPP client for every device and platform.
Stars: ✭ 67 (+91.43%)
Mutual labels:  qml, qtquick
Chart.qml
Chart.qml like Chart.js
Stars: ✭ 100 (+185.71%)
Mutual labels:  qml, qtquick
qml-glsl-coder
live editor of GLSL fragment shaders based on Qt / QML
Stars: ✭ 19 (-45.71%)
Mutual labels:  qml, live-coding

Live Coding Environment for Python, Qt and QML

PyPI version Build Status License: MIT Code style: black

Logo

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:

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.

Live Runner Example

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.

Live Runner Example

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:

  1. Integrate the start_live_coding function into your main.py.
  2. Add a command line argument for live coding.
  3. 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].