pyside2-boilerplate
pyside2-boilerplate copied to clipboard
Qt for Python Application Boilerplate: Resources, forms, multilanguage, compilation, docs, linting...
Qt for Python Application Boilerplate
This repository contains a boilerplate for Qt for Python (PySide2) based applications.
.. image:: https://user-images.githubusercontent.com/25011557/36483230-da4620c6-1715-11e8-9ee5-c10053641440.png :alt: Qt for Python Application Boilerplate
Features
- Dependency management using
pip - Use the standard
setup.pyto build resources, docs, etc. - Manage resources and UI forms using a Qt Creator project
- Generate a compiled application for Windows, Linux and macOS using PyInstaller_
- Multilanguage support
- Document using Sphinx_
- Flake8 linting
Getting started
First of all create a new virtual environment and activate it::
python3 -m venv .venv
source .venv/bin/activate
Then install the application in development mode::
pip install -e .
Finally install development dependencies::
pip install -r requirements-dev.txt
Autogenerated files such as translation binaries or compiled forms are required but not pushed to the repository, so the first time you will need to generate them as described in the coming section. Once done, you can run the application like this::
python -m app
Resources and translations
In order to ease the development process, the Qt Creator project app.pro is
provided. You can open it to edit the UI files or to manage resources.
Translations can be edited using Qt Linguist, part of the Qt SDK. In order to
build the translations, you will need to have the lrelease command on your
PATH or set its full path to the LRELEASE_BIN environment variable.
UI files, translations and resources can be built like this::
python setup.py build_res
Note that this command is automatically run before running sdist and
bdist_app commands.
Compiled application
You can generate a compiled application so that end-users do not need to
install anything. You can tweak some settings on the app.spec file. It can
be generated like this::
python setup.py bdist_app
Documentation
Sphinx_ is used for documentation purposes. You can tweak its configuration in
docs/conf.py and the documentation can be built like this::
python setup.py build_docs
Linting
Flake8 is a great tool to check for style issues, unused imports and similar
stuff. You can tweak .flake8 to ignore certain types of errors, increase the
maximum line length, etc. You can run it like this::
flake8 app
.. _PyInstaller: http://www.pyinstaller.org/ .. _Sphinx: http://www.sphinx-doc.org/