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
  • Auto-Translator - Multi-provider automatic translation system
  • String Collector - Automatic string collection for translations
  • 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)
  • โœ… Automatic Translation System - Multi-provider support (LibreTranslate, MyMemory, Google)
  • โœ… 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)
  • โœ… Standardized Logging - Consistent message formatting across all components

๐Ÿงช 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 with automatic translation capabilities:

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

# Automatic translation (when enabled)
from ezqt_app.kernel.translation.auto_translator import AutoTranslator
translator = AutoTranslator()
auto_translated = translator.translate_sync("Hello World", "fr")

Supported languages: English, Franรงais, Espaรฑol, Deutsch
Translation providers: LibreTranslate, MyMemory, Google Translate
Note: Automatic translation system is temporarily disabled for development

๐ŸŽจ 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.post1.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.post1-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ezqt_app-4.0.3.post1.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.post1.tar.gz
Algorithm Hash digest
SHA256 0ccbf116929f161c7a219c4151e5b0695aeb42c1a6e02a0dac691c65a5f22119
MD5 8483f9d0dafd8fe7b55a345c4bc7361f
BLAKE2b-256 debcdc83aca31e5ffa373cf601b46c4f8f4620b7b0acd755eedf48d5eba3f61d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ezqt_app-4.0.3.post1-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.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 503d932a78bc6978fea8d3f750176e4c245bb6cdfb432eb6774f6df2866dab54
MD5 6c79b07fb8ffb28bb4ca5440507b428b
BLAKE2b-256 3d211d84004ade73bd0c4540e51ecc25eb49d33a9467f61fbbe891fbbf2c1d70

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