EzQt-App


NameEzQt-App JSON
Version 3.0.0 PyPI version JSON
download
home_pageNone
SummaryLightweight framework based on PySide6 to quickly build modern desktop applications, with integrated resource, theme, and reusable component management.
upload_time2025-07-27 05:38:38
maintainerNone
docs_urlNone
authorNone
requires_python<3.13,>=3.9
licenseMIT
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"
}
        
Elapsed time: 1.98262s