Skip to main content

Lightweight framework based on PySide6 to quickly build modern desktop applications, with integrated resource, theme, and reusable component management.

Project description

๐Ÿš€ EzQt_App

Repository PyPI Tests

A lightweight Python framework based on PySide6 to quickly build modern desktop applications, with integrated resource, theme, and reusable component management.

๐Ÿ“ฆ Installation

pip install ezqt_app

๐Ÿš€ Quick Start

import sys
import ezqt_app.main as ezqt
from ezqt_app.app import EzQt_App, EzApplication

# Initialize the framework
ezqt.init()

# Create application
app = EzApplication(sys.argv)

# Create main window
window = EzQt_App(themeFileName="main_theme.qss")

# Add menus
home_page = window.addMenu("Home", "๐Ÿ ")
settings_page = window.addMenu("Settings", "โš™๏ธ")

# Show application
window.show()
app.exec()

๐Ÿ“š Documentation

๐ŸŽฏ Available Components

๐Ÿง  Core Module (ezqt_app.kernel)

  • Kernel - Core application functions and resource management
  • TranslationManager - Multilingual translation system
  • Settings - Application configuration and parameters
  • FileMaker - File and resource generation utilities

๐ŸŽจ Widget Module (ezqt_app.widgets)

  • EzApplication - Extended QApplication with theme support
  • EzQt_App - Main application window with modern UI
  • Core Widgets - Header, Menu, PageContainer, SettingsPanel
  • Extended Widgets - SettingWidgets with validation

๐Ÿ”ง CLI Module (ezqt_app.cli)

  • CLI - Command line interface for project management
  • ProjectRunner - Project creation and template management
  • Create QM Files - Translation file conversion utilities

๐ŸŒ Translation Module (ezqt_app.kernel.translation)

  • TranslationManager - Complete translation management
  • Translation Helpers - Utility functions for translations
  • Translation Config - Configuration and setup

โœจ Features

  • โœ… PySide6 6.9.1 - Modern Qt framework with latest features
  • โœ… Automatic Generation - Asset folders, QRC files, and resources
  • โœ… Dynamic Themes - Light/dark themes with integrated toggle
  • โœ… Global Translation - Multi-language support (EN, FR, ES, DE)
  • โœ… CLI Tools - Project initialization and management
  • โœ… Template System - Basic and advanced project templates
  • โœ… Type Annotations - Complete type hint support
  • โœ… Tests - Comprehensive test suite (~240+ tests)

๐Ÿงช Tests

Quick Execution

# Quick verification
python tests/run_tests.py --type unit

# Tests with coverage
python tests/run_tests.py --coverage

# Or use CLI
ezqt test --unit
ezqt test --coverage

Test Documentation

Statistics

  • Total : ~240+ tests
  • Coverage : High coverage across all modules
  • Status : ๐ŸŸข OPERATIONAL

๐Ÿ–ฅ๏ธ CLI Commands

Project Management

# Initialize new project
ezqt init [--force] [--verbose] [--no-main]

# Create project template
ezqt create --template <type> --name <name>

# Show project information
ezqt info

Development Tools

# Convert translation files
ezqt convert [--verbose]
ezqt mkqm [--verbose]

# Run tests
ezqt test [--unit] [--integration] [--coverage]

# Serve documentation
ezqt docs [--serve] [--port <port>]

CLI Documentation

๐ŸŒ Translation System

The framework includes a complete translation system:

from ezqt_app.kernel import tr, set_tr

# Translate text
text = tr("Hello World")  # Returns "Bonjour le monde" in French

# Set translated text for widget
from PySide6.QtWidgets import QLabel
label = QLabel("Hello World")
set_tr(label, "Hello World")  # Automatically retranslates on language change

# Change language
from ezqt_app.kernel import change_language
change_language("Franรงais")  # Automatically retranslates all registered widgets

Supported languages: English, Franรงais, Espaรฑol, Deutsch

๐ŸŽจ Template System

Basic Template

ezqt create --template basic --name my_app

Structure:

my_app/
โ”œโ”€โ”€ main.py              # Application entry point
โ”œโ”€โ”€ assets/              # Application assets
โ”‚   โ”œโ”€โ”€ icons/          # Icon files
โ”‚   โ”œโ”€โ”€ images/         # Image files
โ”‚   โ””โ”€โ”€ themes/         # QSS theme files
โ””โ”€โ”€ README.md           # Project documentation

Advanced Template

ezqt create --template advanced --name my_app

Structure:

my_app/
โ”œโ”€โ”€ main.py              # Advanced application entry point
โ”œโ”€โ”€ assets/              # Application assets
โ”œโ”€โ”€ src/                 # Source code
โ”‚   โ”œโ”€โ”€ widgets/        # Custom widgets
โ”‚   โ””โ”€โ”€ utils/          # Utility functions
โ”œโ”€โ”€ tests/              # Test files
โ”œโ”€โ”€ docs/               # Documentation
โ””โ”€โ”€ README.md           # Project documentation

๐Ÿ”ง Development

Project Structure

ezqt_app/
โ”œโ”€โ”€ README.md                    # This file
โ”œโ”€โ”€ docs/                        # Documentation
โ”‚   โ”œโ”€โ”€ README.md               # Documentation index
โ”‚   โ”œโ”€โ”€ api/                    # API documentation
โ”‚   โ”‚   โ”œโ”€โ”€ README.md          # Navigation guide
โ”‚   โ”‚   โ”œโ”€โ”€ API_DOCUMENTATION.md # Complete documentation
โ”‚   โ”‚   โ””โ”€โ”€ STYLE_GUIDE.md     # Style guide
โ”‚   โ”œโ”€โ”€ cli/                    # CLI documentation
โ”‚   โ”‚   โ””โ”€โ”€ README.md          # CLI guide
โ”‚   โ””โ”€โ”€ tests/                  # Test documentation
โ”‚       โ”œโ”€โ”€ README.md          # Navigation guide
โ”‚       โ”œโ”€โ”€ TESTS_DOCUMENTATION.md # Complete documentation
โ”‚       โ””โ”€โ”€ QUICK_START_TESTS.md # Quick start guide
โ”œโ”€โ”€ tests/                       # Tests
โ”‚   โ”œโ”€โ”€ run_tests.py           # Test execution script
โ”‚   โ”œโ”€โ”€ conftest.py            # Pytest configuration
โ”‚   โ”œโ”€โ”€ unit/                  # Unit tests
โ”‚   โ””โ”€โ”€ integration/           # Integration tests
โ”œโ”€โ”€ ezqt_app/                   # Source code
โ”‚   โ”œโ”€โ”€ kernel/                # Core components
โ”‚   โ”œโ”€โ”€ widgets/               # Custom widgets
โ”‚   โ”œโ”€โ”€ cli/                   # Command line interface
โ”‚   โ””โ”€โ”€ resources/             # Embedded resources
โ””โ”€โ”€ pyproject.toml              # Project configuration

Development Installation

git clone https://github.com/neuraaak/ezqt_app.git
cd ezqt_app
pip install -e ".[dev]"

# Verify CLI installation
ezqt --version
ezqt info

๐Ÿ“ฆ Dependencies

Main Dependencies

  • PySide6==6.9.1 - Modern Qt framework
  • PyYaml==6.0.2 - YAML file management
  • colorama==0.4.6 - Terminal colors
  • requests==2.32.3 - HTTP requests
  • click>=8.0.0 - CLI framework
  • ezqt-widgets>=2.0.0 - Custom widgets

Development Dependencies

  • pytest>=7.0.0 - Testing framework
  • pytest-cov>=4.0.0 - Coverage reporting
  • pytest-qt>=4.0.0 - Qt testing
  • pytest-mock>=3.10.0 - Mocking utilities
  • flake8>=5.0.0 - Code linting
  • black>=22.0.0 - Code formatting

๐ŸŽจ Customization

Themes

/* Custom QSS theme */
QMainWindow {
    background-color: #2d2d2d;
    color: #ffffff;
}

QPushButton {
    background-color: #0078d4;
    border: none;
    border-radius: 4px;
    padding: 8px 16px;
    color: white;
    font-weight: bold;
}

QPushButton:hover {
    background-color: #106ebe;
}

Custom Widgets

from ezqt_app.widgets.core.header import Header
from ezqt_app.widgets.core.menu import Menu
from ezqt_app.widgets.extended.setting_widgets import SettingWidgets

# Create custom widgets
header = Header()
menu = Menu()
settings = SettingWidgets()

๐Ÿ“„ License

This project is licensed under the MIT License. See LICENSE for details.


EzQt_App - Modern framework for Qt applications with PySide6 6.9.1 ๐Ÿš€

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ezqt_app-4.0.3.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ezqt_app-4.0.3-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file ezqt_app-4.0.3.tar.gz.

File metadata

  • Download URL: ezqt_app-4.0.3.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for ezqt_app-4.0.3.tar.gz
Algorithm Hash digest
SHA256 073629503e3e80f671a447bce607fb3f741fda73ead8ecb6f906eb8d18661512
MD5 b4b69e2a13bdee5464c2e9edabab3eaa
BLAKE2b-256 df2d4ff3a84cc7337d698f5f318f261d58bd8ca43dcd009da5fd64bce58622ef

See more details on using hashes here.

File details

Details for the file ezqt_app-4.0.3-py3-none-any.whl.

File metadata

  • Download URL: ezqt_app-4.0.3-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.3

File hashes

Hashes for ezqt_app-4.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 03b23f3fcde4f4add18e2f8f3b63b8bdaa12760c6519d423b88ecb8897fe5ebe
MD5 18797c06e871af42127426c20ae0de3c
BLAKE2b-256 90ba68f3077205ef6698051ff98477f5c9b2ad59e56a895e6c1faef0c7c6cc9f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page