Lightweight framework based on PySide6 to quickly build modern desktop applications, with integrated resource, theme, and reusable component management.
Project description
๐ EzQt_App
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
- ๐ Complete Documentation - Main documentation guide
- ๐ง API Documentation - Complete documentation of all components
- ๐จ Style Guide - QSS customization and best practices
- ๐งช Tests - Test documentation and execution guide
- ๐ฅ๏ธ CLI Documentation - Command-line interface guide
- ๐ Changelog - Version history
๐ฏ 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
- ๐ Quick Start Guide - Quick verification
- ๐ Complete Documentation - Detailed guide
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
- ๐ฅ๏ธ Complete Guide - All commands and options
๐ 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ccbf116929f161c7a219c4151e5b0695aeb42c1a6e02a0dac691c65a5f22119
|
|
| MD5 |
8483f9d0dafd8fe7b55a345c4bc7361f
|
|
| BLAKE2b-256 |
debcdc83aca31e5ffa373cf601b46c4f8f4620b7b0acd755eedf48d5eba3f61d
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
503d932a78bc6978fea8d3f750176e4c245bb6cdfb432eb6774f6df2866dab54
|
|
| MD5 |
6c79b07fb8ffb28bb4ca5440507b428b
|
|
| BLAKE2b-256 |
3d211d84004ade73bd0c4540e51ecc25eb49d33a9467f61fbbe891fbbf2c1d70
|