Skip to content

PyQt6ify Pro is a starter kit template for building modular desktop applications with PyQt6. It includes customizable UI components such as the menu, toolbar, and status bar, with integrated database support, robust logging, error handling, and easy configuration through a config.ini file.

License

Notifications You must be signed in to change notification settings

elirancv/PyQt6ify-Pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

50 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PyQt6ify Pro

License: MIT Python PyQt6 Code Quality Code style: black Tests: pytest Logging: loguru Linting: pylint GitHub Issues GitHub Pull Requests GitHub Stars GitHub License

A professional Qt6-based desktop application framework that provides a robust foundation for building modern, feature-rich GUI applications in Python. This framework emphasizes modularity, extensibility, and modern UI/UX practices.

PyQt6ify Pro Screenshot

🌟 Key Features

🎨 Modern UI Framework

  • Dynamic Theme System
    • Light/Dark mode with runtime switching
    • Custom theme creation and import
    • Windows 11 dark mode integration
    • Theme persistence across sessions

πŸ—οΈ Architecture

  • Modular Design
    • Component-based architecture
    • Plugin system for extensions
    • Clean separation of concerns
    • Event-driven patterns

βš™οΈ Core Features

  • Configuration Management

    • Multi-tier configuration system
    • User settings persistence
    • Module enablement control
    • Runtime configuration updates
  • Error Handling & Logging

    • Comprehensive exception management
    • Rotating log files
    • Detailed debug logging
    • User-friendly error dialogs
  • Database Integration

    • SQLite database with ORM
    • Automated schema management
    • Transaction support
    • Data validation

πŸ–₯️ UI Components

  • Modern Menu System

    • Icon-based menu items
    • Keyboard shortcuts
    • Status tips
    • Customizable layout
  • Toolbar & Status Bar

    • Configurable toolbar actions
    • Live status updates
    • Progress indicators
    • System notifications

πŸš€ Quick Start

Prerequisites

  • Python 3.8+
  • Git
  • pip

One-Line Installation

pip install git+https://github.com/elirancv/PyQt6ify-Pro.git

Manual Installation

  1. Clone the repository:

    git clone https://github.com/elirancv/PyQt6ify-Pro.git
    cd PyQt6ify-Pro
  2. Create and activate a virtual environment:

    python -m venv venv
    
    # Windows
    venv\Scripts\activate
    
    # Unix/MacOS
    source venv/bin/activate
  3. Install dependencies:

    pip install -r requirements.txt
  4. Run the application:

    python main.py

πŸ—οΈ Project Structure

PyQt6ify-Pro/
β”œβ”€β”€ modules/               # Core application modules
β”‚   β”œβ”€β”€ about/            # About dialog
β”‚   β”œβ”€β”€ config/           # Configuration system
β”‚   β”œβ”€β”€ core/             # Core application logic
β”‚   β”œβ”€β”€ dashboard/        # Main UI dashboard
β”‚   β”œβ”€β”€ database/         # Database operations
β”‚   β”œβ”€β”€ error_handling/   # Error management
β”‚   β”œβ”€β”€ menu/             # Menu system
β”‚   β”œβ”€β”€ resources/        # Resource management
β”‚   β”œβ”€β”€ status_bar/       # Status bar
β”‚   β”œβ”€β”€ themes/           # Theme engine
β”‚   └── toolbar/          # Toolbar system
β”œβ”€β”€ docs/                 # Documentation
β”œβ”€β”€ extensions/           # Extension modules
β”œβ”€β”€ logs/                 # Application logs
β”œβ”€β”€ resources/            # Application resources
β”‚   └── icons/           # UI icons
β”œβ”€β”€ tests/                # Test suite
β”‚   β”œβ”€β”€ about/           # About module tests
β”‚   β”œβ”€β”€ config/          # Configuration tests
β”‚   β”œβ”€β”€ core/            # Core module tests
β”‚   └── ...              # Other module tests
β”œβ”€β”€ main.py              # Application entry
β”œβ”€β”€ requirements.txt     # Dependencies
└── LICENSE.md           # License

βš™οΈ Configuration

System Configuration

Located in modules/config/config.py:

{
    'Application': {
        'Name': 'PyQt6ify Pro',
        'Version': '1.0.0',
        'Debug': 'False'
    },
    'Modules': {
        'logging': 'True',
        'database': 'True',
        'menu': 'True',
        'toolbar': 'True',
        'status_bar': 'True'
    }
}

User Settings

Stored in modules/config/config.py:

[Window]
theme = dark
start_maximized = true
screen_width = 1024
screen_height = 768

[Features]
auto_save = true

πŸ§ͺ Testing

Run the test suite:

# Run all tests with coverage
python -m pytest tests/ --cov=modules

# Run specific module tests
pytest tests/config/
pytest tests/themes/

🎨 Theme System

Built-in Themes

  • Light Theme (Default)
  • Dark Theme
  • System Theme (Windows 11)

Custom Themes

Create custom themes using JSON:

{
  "theme_name": {
    "window": {
      "background": "#FFFFFF",
      "foreground": "#000000"
    },
    "accent": "#0078D4"
  }
}

πŸ“š Documentation

Comprehensive documentation is available in the docs/ directory:

  • API Reference
  • Component Guide
  • Theme Customization
  • Extension Development

🀝 Contributing

Please read our Contributing Guidelines before making a pull request.

Click to expand contribution workflow
  1. Fork the repository
  2. Create your feature branch
    git checkout -b feature/amazing-feature
  3. Commit your changes
    git commit -m 'Add amazing feature'
  4. Push to the branch
    git push origin feature/amazing-feature
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see LICENSE.md for details.

πŸ™ Acknowledgments

πŸ“« Support & Links

GitHub Issues GitHub Pull Requests GitHub Stars GitHub License

About

PyQt6ify Pro is a starter kit template for building modular desktop applications with PyQt6. It includes customizable UI components such as the menu, toolbar, and status bar, with integrated database support, robust logging, error handling, and easy configuration through a config.ini file.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages