Lightweight framework based on PySide6 to quickly build modern desktop applications, with integrated resource, theme, and reusable component management.
Project description
EzQt-App
Description
EzQt-App is a Python framework designed to make it easy to create modern Qt applications, based on a template by Wanderson M. Pimenta. It automates resource management, generates all required files, and offers a fast project bootstrap experience with a CLI command.
๐ New PySide6 6.9.1 Features
QMessageLogger
The project now includes a utility to use PySide6 6.9.1's QMessageLogger:
from ezqt_app.utils.qmessage_logger import QtLogger
logger = QtLogger("MyApp")
logger.info("Application started")
logger.debug("Debug mode enabled")
logger.warning("Warning: experimental feature")
Type Annotations Improvements
- Complete type annotations for better maintainability
- More robust code with PySide6 6.9.1 improvements
- Support for new APIs and features
- Better autocompletion in IDEs
Windows ARM64 Support
- Extended compatibility with new architectures
- Improved performance on ARM64 systems
โจ Main Features
- Automatic generation of asset folders and files (icons, images, themes, etc.)
- Dynamic themes (light/dark) with integrated toggle
- CLI command
ezqt_initto quickly initialize a new project - Ready-to-use
main.pyexample generated automatically - Modular and extensible structure
- Global translation system with multi-language support
- Advanced resource manager with automatic detection
- Custom widgets with animations and themes
๐ฆ Installation
Install the module via pip (recommended):
pip install ezqt_app
Or locally:
git clone https://github.com/neuraaak/ezqt_app.git
cd ezqt_app
pip install .
๐ง Dependencies
Main dependencies are installed automatically:
- 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
- ezqt-widgets>=2.0.0 - Custom widgets
๐ Project Initialization
After installation, initialize a new project in an empty folder with:
ezqt_init
This command creates the base structure, resource folders, and a sample main.py file.
๐ป Minimal Usage Example
import ezqt_app.main as ezqt
from ezqt_app.app import EzQt_App, EzApplication
import sys
ezqt.init()
app = EzApplication(sys.argv)
window = EzQt_App(themeFileName="main_theme.qss")
window.show()
app.exec()
๐ Translation System
The framework includes a complete translation system:
from ezqt_app.kernel.translation_manager import get_translation_manager
# Get the translation manager
tm = get_translation_manager()
# Change language
tm.load_language("English")
# Translate text
translated = tm.translate("Hello World")
Supported languages: English, French, Spanish, German
๐ Generated Project Structure
my_project/
โโโ main.py # Application entry point
โโโ bin/ # Project resources
โ โโโ config/ # Configuration files
โ โโโ fonts/ # Custom fonts
โ โโโ icons/ # Application icons
โ โโโ images/ # Images and graphics
โ โโโ themes/ # QSS theme files
โ โโโ modules/ # Custom modules
โ โโโ translations/ # Translation files (.ts, .qm)
โโโ _temp/ # Temporary files (if migration)
๐๏ธ Project Structure
ezqt_app/
โโโ README.md # Main documentation
โโโ CHANGELOG.md # Version history
โโโ docs/ # Technical documentation
โ โโโ README.md # Documentation overview
โ โโโ TRANSLATION_SYSTEM.md # Translation system
โโโ tests/ # Unit and integration tests
โ โโโ README.md # Test documentation
โ โโโ unit/ # Unit tests
โ โโโ integration/ # Integration tests
โ โโโ fixtures/ # Test data
โโโ ezqt_app/ # Main source code
โ โโโ kernel/ # Kernel components
โ โ โโโ translation_manager.py # Translation manager
โ โ โโโ app_functions.py # Application functions
โ โ โโโ ui_functions.py # UI functions
โ โ โโโ ... # Other components
โ โโโ widgets/ # Custom widgets
โ โ โโโ core/ # Base widgets
โ โ โโโ extended/ # Extended widgets
โ โ โโโ custom_grips/ # Resize widgets
โ โโโ utils/ # Utilities
โ โ โโโ cli.py # Command line interface
โ โ โโโ qmessage_logger.py # Logging system
โ โ โโโ create_qm_files.py # .qm file creation
โ โโโ resources/ # Embedded resources
โโโ modules/ # External modules
โโโ pyproject.toml # Project configuration
๐จ Customization
Themes
- Edit the theme in
bin/themes/main_theme.qssor use the toggle in the interface - Add your own icons/images in the corresponding folders
Custom Widgets
The framework includes several ready-to-use widgets:
from ezqt_app.widgets.core.menu import Menu
from ezqt_app.widgets.core.header import Header
from ezqt_app.widgets.extended.menu_button import MenuButton
# Create custom widgets
menu = Menu()
header = Header()
menu_button = MenuButton("My Button")
๐ง Included Utilities
CLI Commands
ezqt_init- Project initializationezqt_qm_convert- Convert .ts files to .qm
Advanced Logging
from ezqt_app.utils.qmessage_logger import QtLogger
logger = QtLogger("MyApp")
logger.info("Application started")
logger.debug("Debug mode enabled")
logger.warning("Warning: experimental feature")
logger.error("Error detected")
๐งช Testing
The framework includes comprehensive automated tests:
# Unit tests
python -m pytest tests/unit/
# Integration tests
python -m pytest tests/integration/
# PySide6 migration tests
python _temp/tests/test_remaining_modules.py
๐ Documentation
- README.md - This file (overview)
- docs/README.md - Detailed technical documentation
- docs/TRANSLATION_SYSTEM.md - Translation system guide
- CHANGELOG.md - Complete version history
๐ค Contribution
Contributions are welcome! Submit your ideas, fixes, or extensions via issues or pull requests.
Contribution Guide
- Fork the project
- Create a branch for your feature
- Commit your changes
- Push to the branch
- Open a Pull Request
๐ License & Credits
MIT License
This project is inspired by the template of Wanderson M. Pimenta. See the LICENSE file for details.
๐ Migration to PySide6 6.9.1
The project has been completely migrated to PySide6 6.9.1 with:
- โ 21/21 files successfully migrated
- โ No functional regressions
- โ Significant code quality improvements
- โ New PySide6 6.9.1 features integrated
- โ Complete documentation created
- โ Automated tools for future migrations
Migration Benefits
- Improved performance thanks to PySide6 6.9.1 optimizations
- More maintainable code with complete type annotations
- Extended support with Windows ARM64
- Enhanced stability with bug fixes
- Enriched features with new APIs
EzQt-App 3.0.0 - 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-3.0.0.tar.gz.
File metadata
- Download URL: ezqt_app-3.0.0.tar.gz
- Upload date:
- Size: 912.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a24f9bfd0d58e5395314545cd0a4576ab13bc836c66e948852785b72cc81211
|
|
| MD5 |
47529e36e42bcb6a167f2b0cbaba15cc
|
|
| BLAKE2b-256 |
fa8edeef093255229d193569ed7a76fa1b284683c1f22fe32f50e95b559fc178
|
File details
Details for the file ezqt_app-3.0.0-py3-none-any.whl.
File metadata
- Download URL: ezqt_app-3.0.0-py3-none-any.whl
- Upload date:
- Size: 1.2 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 |
f8bb75dc5178dc1c0b0f9f4143d47260333bb38721d55585c212b754450e0c6e
|
|
| MD5 |
927cff4dbcab1a7fe0febe65558dd8c9
|
|
| BLAKE2b-256 |
0dc2e1fff6f3b478fd5aa515d8590885c9a0defec68f533a36e46812f064bede
|