{"id":14982629,"url":"https://github.com/trin94/pyside6-project-template","last_synced_at":"2025-04-06T02:07:18.283Z","repository":{"id":38420721,"uuid":"495009181","full_name":"trin94/PySide6-project-template","owner":"trin94","description":"An unofficial and opinionated project template designed for a quick start with PySide6 and QtQuick","archived":false,"fork":false,"pushed_at":"2025-04-05T10:41:03.000Z","size":259,"stargazers_count":109,"open_issues_count":1,"forks_count":19,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-06T02:06:52.465Z","etag":null,"topics":["python","qml","qt6","qtquick","template"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trin94.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-22T09:04:49.000Z","updated_at":"2025-04-05T15:31:08.000Z","dependencies_parsed_at":"2024-01-01T11:28:42.594Z","dependency_job_id":"4b20f60c-50e3-40f2-8b83-562a2dda6824","html_url":"https://github.com/trin94/PySide6-project-template","commit_stats":{"total_commits":30,"total_committers":2,"mean_commits":15.0,"dds":"0.033333333333333326","last_synced_commit":"fee4242bba2992954352043654bfa05c35fd6e74"},"previous_names":[],"tags_count":1,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trin94%2FPySide6-project-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trin94%2FPySide6-project-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trin94%2FPySide6-project-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trin94%2FPySide6-project-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trin94","download_url":"https://codeload.github.com/trin94/PySide6-project-template/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247423513,"owners_count":20936626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","qml","qt6","qtquick","template"],"created_at":"2024-09-24T14:05:46.304Z","updated_at":"2025-04-06T02:07:18.276Z","avatar_url":"https://github.com/trin94.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unofficial Opinionated Template for PySide6 with QtQuick\n\nAn unofficial and opinionated project template designed for a quick start with PySide6 and QtQuick.\n\n![screenshot](docs/picture.png)\n\n# Features\n\n- Compatible with Python **3.9+**\n- Supports internationalization,\n  including [Right-to-Left User Interfaces](https://doc.qt.io/qt-6/qtquick-positioning-righttoleft.html)\n- Leverages the [Qt Resource System](https://doc.qt.io/qt-6/resources.html) to compile resources in `data`, `i18n`, or\n  `qml` into a Python file:\n  - `data` accessible at `:/data` or `qrc:/data`\n  - `i18n` accessible at `:/i18n` or `qrc:/i18n`\n  - `qml` accessible at `:/qt/qml` or `qrc:/qt/qml`\n- Final build consists solely of Python files\n- Preconfigured testing (Python + QML)\n- CI setup included\n- Client-side window decorations implemented\n- No need for Qt Creator; use your preferred text editor\n\n## Development Setup\n\n1. **Install these tools**\n\n   - [Compatible Python version](https://www.python.org/downloads)\n   - [uv](https://github.com/astral-sh/uv)\n   - [just](https://github.com/casey/just)\n   - **Windows users also need**\n     - [Git Bash](https://git-scm.com/downloads)\n     - Be sure to run `just` inside Git Bash\n\n2. **Clone the repository**\n\n3. **Open a terminal** where you cloned it\n\n4. **Initialize the environment**:\n\n   ```shell\n   just init\n   ```\n   \n## Workflow\n\nWhenever you change files in the `data`, `i18n`, or `qml` directories, run:\n\n```shell\njust build-develop\n```\n\nThis compiles them into a Python file in the myapp folder, so the app recognizes them on startup.\n\nTo start the app, run:\n\n```shell\nuv run main.py\n```\n\n**Tip:** Configure your IDE to run the `build-develop` recipe before launching the application.\n\n## Just recipes\n\n```just\n$ just --list\nAvailable recipes:\n    [build]\n    build                   # Build full project into build/release\n    build-develop           # Build and compile resources into source directory\n    clean                   # Remove ALL generated files\n    init ARGS='--group dev' # Initialize repository\n\n    [i18n]\n    add-translation locale  # Add new language\n    update-translations     # Update *.ts files by traversing the source code\n\n    [test]\n    test                    # Run Python and QML tests\n    test-python             # Run Python tests\n    test-qml                # Run QML tests\n```\n\n## Internationalization\n\n- Instructions for adding new languages can be found [here](docs/internationalization.md).\n\n## Read Further\n\n- Qt6: https://doc.qt.io\n- Python: https://www.python.org\n- PySide6: https://doc.qt.io/qtforpython/contents.html\n- Examples for Qt, QtQuick \u0026 Python: https://pypi.org/project/PySide6-Examples/\n- QML Coding Conventions: https://doc.qt.io/qt-6/qml-codingconventions.html\n- Python \u0026 QML: https://doc.qt.io/qtforpython/PySide6/QtQml/index.html\n- Scripting: https://doc.qt.io/qt-6/topics-scripting.html\n- Importing JavaScript Resources in QML: https://doc.qt.io/qt-6/qtqml-javascript-imports.html\n- Packaging on Linux: https://github.com/andyholmes/flatter\n\n# Dependencies\n\n- PySide6: https://pypi.org/project/PySide6\n- PyTest: https://pypi.org/project/pytest\n- Just: https://github.com/casey/just\n- App Icon: https://commons.wikimedia.org/wiki/File:Qt_logo_2016.svg\n- Material Icons: https://fonts.google.com/icons?selected=Material+Icons\n\n# Apps Made with This Template\n\n- mpvQC (https://mpvqc.github.io)\n\nCreate a Pull Request to add your app to the list 😊\n\n# FAQ\n\n- Is it exclusively **PySide6**? Can **PyQt6** be used instead of PySide6?\n  \u003e Yes, it should be possible but may require additional work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrin94%2Fpyside6-project-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrin94%2Fpyside6-project-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrin94%2Fpyside6-project-template/lists"}