Skip to content

trin94/PySide6-project-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unofficial Opinionated Template for PySide6 with QtQuick

An unofficial and opinionated project template designed for a quick start with PySide6 and QtQuick. This template is primarily intended for fast prototyping and for learning how to build applications with QtQuick.

screenshot

Features

  • Compatible with Python 3.9+
  • Supports internationalization, including Right-to-Left User Interfaces
  • Leverages the Qt Resource System to compile resources in data, i18n, and qt/qml into a Python file:
    • data accessible at :/data or qrc:/data
    • i18n accessible at :/i18n or qrc:/i18n
    • qt/qml accessible at :/qt/qml or qrc:/qt/qml
  • Final build consists solely of Python files
  • Preconfigured testing with pytest for Python and qmltestrunner for QML
  • CI setup included
  • Client-side window decorations implemented
  • No need for Qt Creator; use your preferred text editor

Development Setup

  1. Install these tools

  2. Clone the repository

  3. Open a terminal where you cloned it

  4. Initialize the environment:

    just init

Workflow

Whenever you change files in the data, i18n, or qt/qml directories, run:

just build-develop

This compiles them into a Python file which is picked up during startup.

To start the app, run:

uv run main.py

Tip: Configure your IDE to run the build-develop recipe before launching the application.

Just recipes

The provided just recipes automate common tasks such as building resources, running tests, and adding translations.

$ just --list
Available recipes:
    [build]
    build                   # Build full project into build/release
    build-develop           # Build and compile resources into source directory
    clean                   # Remove ALL generated files
    init ARGS='--group dev' # Initialize repository

    [i18n]
    add-translation locale  # Add language; pattern: language-region ISO 639-1, ISO 3166-1; example: fr-FR
    update-translations     # Update *.ts files by traversing the source code

    [test]
    test                    # Run Python and QML tests
    test-python             # Run Python tests
    test-qml                # Run QML tests

Internationalization

  • Instructions for adding new languages can be found here.

Read Further

Dependencies

Apps Made with This Template

Create a Pull Request to add your app to the list 😊

Upgrade Path

Upgrading from v0.0.3 or earlier to v1.0.0 requires some adjustments:

  • Python source files are now located in src (previously: myapp).
  • QML files are now in qt/qml (previously: qml).
  • Translation files now use a hyphenated locale format, e.g. fr-FR (previously: fr_FR).

FAQ

  • Is it exclusively PySide6? Can PyQt6 be used instead of PySide6?

    Yes, it should be possible but may require additional work.

About

An unofficial and opinionated project template designed for a quick start with PySide6 and QtQuick

Topics

Resources

License

Stars

Watchers

Forks