Name | EzQt-App JSON |
Version |
3.0.0
JSON |
| download |
home_page | None |
Summary | Lightweight framework based on PySide6 to quickly build modern desktop applications, with integrated resource, theme, and reusable component management. |
upload_time | 2025-07-27 05:38:38 |
maintainer | None |
docs_url | None |
author | None |
requires_python | <3.13,>=3.9 |
license | MIT |
keywords |
application
framework
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# 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:
```python
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_init`** to quickly initialize a new project
- **Ready-to-use `main.py` example** 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):
```bash
pip install ezqt_app
```
Or locally:
```bash
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:
```bash
ezqt_init
```
This command creates the base structure, resource folders, and a sample `main.py` file.
## ๐ป Minimal Usage Example
```python
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:
```python
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.qss` or 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:
```python
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 initialization
- **`ezqt_qm_convert`** - Convert .ts files to .qm
### Advanced Logging
```python
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:
```bash
# 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
1. Fork the project
2. Create a branch for your feature
3. Commit your changes
4. Push to the branch
5. 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 ๐
Raw data
{
"_id": null,
"home_page": null,
"name": "EzQt-App",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.9",
"maintainer_email": null,
"keywords": "application, framework",
"author": null,
"author_email": "Florian Salort <floriansalort@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/fa/8e/deef093255229d193569ed7a76fa1b284683c1f22fe32f50e95b559fc178/ezqt_app-3.0.0.tar.gz",
"platform": null,
"description": "# EzQt-App\r\n\r\n## Description\r\n\r\nEzQt-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.\r\n\r\n## \ud83d\ude80 New PySide6 6.9.1 Features\r\n\r\n### QMessageLogger\r\nThe project now includes a utility to use PySide6 6.9.1's QMessageLogger:\r\n\r\n```python\r\nfrom ezqt_app.utils.qmessage_logger import QtLogger\r\n\r\nlogger = QtLogger(\"MyApp\")\r\nlogger.info(\"Application started\")\r\nlogger.debug(\"Debug mode enabled\")\r\nlogger.warning(\"Warning: experimental feature\")\r\n```\r\n\r\n### Type Annotations Improvements\r\n- **Complete type annotations** for better maintainability\r\n- **More robust code** with PySide6 6.9.1 improvements\r\n- **Support for new APIs** and features\r\n- **Better autocompletion** in IDEs\r\n\r\n### Windows ARM64 Support\r\n- **Extended compatibility** with new architectures\r\n- **Improved performance** on ARM64 systems\r\n\r\n## \u2728 Main Features\r\n\r\n- **Automatic generation** of asset folders and files (icons, images, themes, etc.)\r\n- **Dynamic themes** (light/dark) with integrated toggle\r\n- **CLI command `ezqt_init`** to quickly initialize a new project\r\n- **Ready-to-use `main.py` example** generated automatically\r\n- **Modular and extensible structure**\r\n- **Global translation system** with multi-language support\r\n- **Advanced resource manager** with automatic detection\r\n- **Custom widgets** with animations and themes\r\n\r\n## \ud83d\udce6 Installation\r\n\r\nInstall the module via pip (recommended):\r\n\r\n```bash\r\npip install ezqt_app\r\n```\r\n\r\nOr locally:\r\n\r\n```bash\r\ngit clone https://github.com/neuraaak/ezqt_app.git\r\ncd ezqt_app\r\npip install .\r\n```\r\n\r\n## \ud83d\udd27 Dependencies\r\n\r\nMain dependencies are installed automatically:\r\n- **PySide6==6.9.1** - Modern Qt framework\r\n- **PyYaml==6.0.2** - YAML file management\r\n- **colorama==0.4.6** - Terminal colors\r\n- **requests==2.32.3** - HTTP requests\r\n- **ezqt-widgets>=2.0.0** - Custom widgets\r\n\r\n## \ud83d\ude80 Project Initialization\r\n\r\nAfter installation, initialize a new project in an empty folder with:\r\n\r\n```bash\r\nezqt_init\r\n```\r\n\r\nThis command creates the base structure, resource folders, and a sample `main.py` file.\r\n\r\n## \ud83d\udcbb Minimal Usage Example\r\n\r\n```python\r\nimport ezqt_app.main as ezqt\r\nfrom ezqt_app.app import EzQt_App, EzApplication\r\nimport sys\r\n\r\nezqt.init()\r\napp = EzApplication(sys.argv)\r\nwindow = EzQt_App(themeFileName=\"main_theme.qss\")\r\nwindow.show()\r\napp.exec()\r\n```\r\n\r\n## \ud83c\udf0d Translation System\r\n\r\nThe framework includes a complete translation system:\r\n\r\n```python\r\nfrom ezqt_app.kernel.translation_manager import get_translation_manager\r\n\r\n# Get the translation manager\r\ntm = get_translation_manager()\r\n\r\n# Change language\r\ntm.load_language(\"English\")\r\n\r\n# Translate text\r\ntranslated = tm.translate(\"Hello World\")\r\n```\r\n\r\n**Supported languages:** English, French, Spanish, German\r\n\r\n## \ud83d\udcc1 Generated Project Structure\r\n\r\n```\r\nmy_project/\r\n\u251c\u2500\u2500 main.py # Application entry point\r\n\u251c\u2500\u2500 bin/ # Project resources\r\n\u2502 \u251c\u2500\u2500 config/ # Configuration files\r\n\u2502 \u251c\u2500\u2500 fonts/ # Custom fonts\r\n\u2502 \u251c\u2500\u2500 icons/ # Application icons\r\n\u2502 \u251c\u2500\u2500 images/ # Images and graphics\r\n\u2502 \u251c\u2500\u2500 themes/ # QSS theme files\r\n\u2502 \u251c\u2500\u2500 modules/ # Custom modules\r\n\u2502 \u2514\u2500\u2500 translations/ # Translation files (.ts, .qm)\r\n\u2514\u2500\u2500 _temp/ # Temporary files (if migration)\r\n```\r\n\r\n## \ud83c\udfd7\ufe0f Project Structure\r\n\r\n```\r\nezqt_app/\r\n\u251c\u2500\u2500 README.md # Main documentation\r\n\u251c\u2500\u2500 CHANGELOG.md # Version history\r\n\u251c\u2500\u2500 docs/ # Technical documentation\r\n\u2502 \u251c\u2500\u2500 README.md # Documentation overview\r\n\u2502 \u2514\u2500\u2500 TRANSLATION_SYSTEM.md # Translation system\r\n\u251c\u2500\u2500 tests/ # Unit and integration tests\r\n\u2502 \u251c\u2500\u2500 README.md # Test documentation\r\n\u2502 \u251c\u2500\u2500 unit/ # Unit tests\r\n\u2502 \u251c\u2500\u2500 integration/ # Integration tests\r\n\u2502 \u2514\u2500\u2500 fixtures/ # Test data\r\n\u251c\u2500\u2500 ezqt_app/ # Main source code\r\n\u2502 \u251c\u2500\u2500 kernel/ # Kernel components\r\n\u2502 \u2502 \u251c\u2500\u2500 translation_manager.py # Translation manager\r\n\u2502 \u2502 \u251c\u2500\u2500 app_functions.py # Application functions\r\n\u2502 \u2502 \u251c\u2500\u2500 ui_functions.py # UI functions\r\n\u2502 \u2502 \u2514\u2500\u2500 ... # Other components\r\n\u2502 \u251c\u2500\u2500 widgets/ # Custom widgets\r\n\u2502 \u2502 \u251c\u2500\u2500 core/ # Base widgets\r\n\u2502 \u2502 \u251c\u2500\u2500 extended/ # Extended widgets\r\n\u2502 \u2502 \u2514\u2500\u2500 custom_grips/ # Resize widgets\r\n\u2502 \u251c\u2500\u2500 utils/ # Utilities\r\n\u2502 \u2502 \u251c\u2500\u2500 cli.py # Command line interface\r\n\u2502 \u2502 \u251c\u2500\u2500 qmessage_logger.py # Logging system\r\n\u2502 \u2502 \u2514\u2500\u2500 create_qm_files.py # .qm file creation\r\n\u2502 \u2514\u2500\u2500 resources/ # Embedded resources\r\n\u251c\u2500\u2500 modules/ # External modules\r\n\u2514\u2500\u2500 pyproject.toml # Project configuration\r\n```\r\n\r\n## \ud83c\udfa8 Customization\r\n\r\n### Themes\r\n- Edit the theme in `bin/themes/main_theme.qss` or use the toggle in the interface\r\n- Add your own icons/images in the corresponding folders\r\n\r\n### Custom Widgets\r\nThe framework includes several ready-to-use widgets:\r\n\r\n```python\r\nfrom ezqt_app.widgets.core.menu import Menu\r\nfrom ezqt_app.widgets.core.header import Header\r\nfrom ezqt_app.widgets.extended.menu_button import MenuButton\r\n\r\n# Create custom widgets\r\nmenu = Menu()\r\nheader = Header()\r\nmenu_button = MenuButton(\"My Button\")\r\n```\r\n\r\n## \ud83d\udd27 Included Utilities\r\n\r\n### CLI Commands\r\n- **`ezqt_init`** - Project initialization\r\n- **`ezqt_qm_convert`** - Convert .ts files to .qm\r\n\r\n### Advanced Logging\r\n```python\r\nfrom ezqt_app.utils.qmessage_logger import QtLogger\r\n\r\nlogger = QtLogger(\"MyApp\")\r\nlogger.info(\"Application started\")\r\nlogger.debug(\"Debug mode enabled\")\r\nlogger.warning(\"Warning: experimental feature\")\r\nlogger.error(\"Error detected\")\r\n```\r\n\r\n## \ud83e\uddea Testing\r\n\r\nThe framework includes comprehensive automated tests:\r\n\r\n```bash\r\n# Unit tests\r\npython -m pytest tests/unit/\r\n\r\n# Integration tests\r\npython -m pytest tests/integration/\r\n\r\n# PySide6 migration tests\r\npython _temp/tests/test_remaining_modules.py\r\n```\r\n\r\n## \ud83d\udcda Documentation\r\n\r\n- **README.md** - This file (overview)\r\n- **docs/README.md** - Detailed technical documentation\r\n- **docs/TRANSLATION_SYSTEM.md** - Translation system guide\r\n- **CHANGELOG.md** - Complete version history\r\n\r\n## \ud83e\udd1d Contribution\r\n\r\nContributions are welcome! Submit your ideas, fixes, or extensions via issues or pull requests.\r\n\r\n### Contribution Guide\r\n1. Fork the project\r\n2. Create a branch for your feature\r\n3. Commit your changes\r\n4. Push to the branch\r\n5. Open a Pull Request\r\n\r\n## \ud83d\udcc4 License & Credits\r\n\r\n**MIT License**\r\n\r\nThis project is inspired by the template of Wanderson M. Pimenta. See the LICENSE file for details.\r\n\r\n## \ud83c\udd95 Migration to PySide6 6.9.1\r\n\r\nThe project has been completely migrated to PySide6 6.9.1 with:\r\n\r\n- \u2705 **21/21 files** successfully migrated\r\n- \u2705 **No functional regressions**\r\n- \u2705 **Significant code quality improvements**\r\n- \u2705 **New PySide6 6.9.1 features** integrated\r\n- \u2705 **Complete documentation** created\r\n- \u2705 **Automated tools** for future migrations\r\n\r\n### Migration Benefits\r\n- **Improved performance** thanks to PySide6 6.9.1 optimizations\r\n- **More maintainable code** with complete type annotations\r\n- **Extended support** with Windows ARM64\r\n- **Enhanced stability** with bug fixes\r\n- **Enriched features** with new APIs\r\n\r\n---\r\n\r\n**EzQt-App 3.0.0** - Modern framework for Qt applications with PySide6 6.9.1 \ud83d\ude80\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Lightweight framework based on PySide6 to quickly build modern desktop applications, with integrated resource, theme, and reusable component management.",
"version": "3.0.0",
"project_urls": null,
"split_keywords": [
"application",
" framework"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0dc2e1fff6f3b478fd5aa515d8590885c9a0defec68f533a36e46812f064bede",
"md5": "927cff4dbcab1a7fe0febe65558dd8c9",
"sha256": "f8bb75dc5178dc1c0b0f9f4143d47260333bb38721d55585c212b754450e0c6e"
},
"downloads": -1,
"filename": "ezqt_app-3.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "927cff4dbcab1a7fe0febe65558dd8c9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.9",
"size": 1179635,
"upload_time": "2025-07-27T05:38:37",
"upload_time_iso_8601": "2025-07-27T05:38:37.297171Z",
"url": "https://files.pythonhosted.org/packages/0d/c2/e1fff6f3b478fd5aa515d8590885c9a0defec68f533a36e46812f064bede/ezqt_app-3.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "fa8edeef093255229d193569ed7a76fa1b284683c1f22fe32f50e95b559fc178",
"md5": "47529e36e42bcb6a167f2b0cbaba15cc",
"sha256": "0a24f9bfd0d58e5395314545cd0a4576ab13bc836c66e948852785b72cc81211"
},
"downloads": -1,
"filename": "ezqt_app-3.0.0.tar.gz",
"has_sig": false,
"md5_digest": "47529e36e42bcb6a167f2b0cbaba15cc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.9",
"size": 912404,
"upload_time": "2025-07-27T05:38:38",
"upload_time_iso_8601": "2025-07-27T05:38:38.811753Z",
"url": "https://files.pythonhosted.org/packages/fa/8e/deef093255229d193569ed7a76fa1b284683c1f22fe32f50e95b559fc178/ezqt_app-3.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-27 05:38:38",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "ezqt-app"
}