# ThemeMa## ✨ What's New in v0.2.1
- 🔧 **Fixed GUI Startup Issues**: Theme editor now launches reliably across all Qt frameworks
- ⚙️ **Enhanced Qt Compatibility**: Full support for PyQt5, PyQt6, and PySide6
- 🚀 **Improved Startup Methods**: Both module and script execution work perfectly
- 📦 **Better Error Handling**: Cleaner error messages and interruption support
- 🤖 **Automated Releases**: PyPI auto-publishing via GitHub Actionsfor PyQt5/PyQt6/PySide6
[](https://github.com/scottlz0310/Qt-Theme-Manager/actions/workflows/ci-cd-tests.yml)
[](https://badge.fury.io/py/qt-theme-manager)
[](https://pypi.org/project/qt-theme-manager/)
[](https://opensource.org/licenses/MIT)
A comprehensive theme management library for PyQt5/PyQt6/PySide6 applications, providing dynamic theme switching with an advanced theme editor and 16+ built-in themes.
## ✨ What's New in v0.2.1
- 🔧 **Fixed GUI Startup Issues**: Theme editor now launches reliably across all Qt frameworks
- ⚙️ **Enhanced Qt Compatibility**: Full support for PyQt5, PyQt6, and PySide6
- 🚀 **Improved Startup Methods**: Both module and script execution work perfectly
- � **Better Error Handling**: Cleaner error messages and interruption support
## Features
- 🎨 **16+ Built-in Themes**: Light, Dark, High Contrast, and colorful themes
- ♿ **Accessibility Enhanced**: 6% lightness contrast for zebra stripes (WCAG-compliant)
- ✨ **Advanced Theme Editor**: Professional-grade theme creation tools
- 🔄 **Dynamic Theme Switching**: Change themes at runtime without restarting
- 💾 **Persistent Settings**: Theme preferences are automatically saved
- 🖥️ **GUI Tools**: Interactive editor and preview applications with CLI options
- 📟 **Enhanced CLI Support**: Theme preview with custom configs and themes
- 🎯 **Easy Integration**: Simple API for applying themes to widgets/applications
- ⚡ **QSS Generation**: Automatic stylesheet generation from theme configurations
- 🔄 **Theme Format Conversion**: Convert custom themes to Qt-Theme-Manager format
## 🚀 30-Second Quick Start
**Want to try the new theme editor?**
```bash
# Install and launch theme editor (Now with enhanced startup reliability!)
pip install qt-theme-manager[pyqt6]
theme-editor
# Alternative launch methods (both work reliably):
python -m theme_manager.qt.theme_editor
python launch_theme_editor.py # If you cloned the repo
```
**Want to add beautiful themes to your Qt app in just 3 lines of code?**
```python
from theme_manager.qt.controller import apply_theme_to_widget
# That's it! Apply current theme to any widget:
apply_theme_to_widget(your_widget)
```
**Want to switch themes dynamically?**
```python
from theme_manager.qt.controller import ThemeController
controller = ThemeController()
controller.set_theme("dark") # or "light", "blue", "cyberpunk", etc.
controller.apply_theme_to_application()
```
**16 beautiful themes ready to use:** `dark`, `light`, `blue`, `green`, `cyberpunk`, `ocean`, and more!
---
## Installation
### Option 1: Install from PyPI (recommended)
```bash
# Basic installation
pip install qt-theme-manager
# Install with your preferred Qt framework (Enhanced compatibility in v0.2.1!)
pip install qt-theme-manager[pyqt6] # For PyQt6 (recommended)
pip install qt-theme-manager[pyqt5] # For PyQt5
pip install qt-theme-manager[pyside6] # For PySide6
# Install with all Qt frameworks
pip install qt-theme-manager[all]
```
> **✨ New in v0.2.1**: Enhanced Qt framework compatibility ensures reliable operation across PyQt5, PyQt6, and PySide6.
### Option 2: Install from source (for developers)
```bash
git clone https://github.com/scottlz0310/Qt-Theme-Manager.git
cd Qt-Theme-Manager
# Create virtual environment (recommended)
python -m venv venv
source venv/bin/activate # Linux/Mac
# or: venv\Scripts\activate # Windows
# Install with your preferred Qt framework
pip install -e .[pyqt6] # For PyQt6
# pip install -e .[pyqt5] # For PyQt5
# pip install -e .[pyside6] # For PySide6
```
### Requirements
- Python 3.9+
- PyQt5, PyQt6, or PySide6 (for GUI functionality)
## Quick Start
### Basic Usage
```python
from theme_manager.qt.controller import apply_theme_to_widget
from PyQt5.QtWidgets import QApplication, QMainWindow
app = QApplication([])
window = QMainWindow()
# Apply current theme to widget
apply_theme_to_widget(window)
window.show()
app.exec_()
```
### Using ThemeController
```python
from theme_manager.qt.controller import ThemeController
# Initialize theme controller
controller = ThemeController()
# Get available themes
themes = controller.get_available_themes()
print("Available themes:", list(themes.keys()))
# Switch theme
controller.set_theme("dark")
# Apply to application
controller.apply_theme_to_application()
```
## Command Line Interface
### 🎨 GUI Tools (Enhanced in v0.2.3!)
After installing via pip, you can use these convenient GUI tools:
```bash
# Launch the advanced theme editor
theme-editor
# Launch theme preview window
theme-preview
# NEW: Launch with custom configuration and theme (v0.2.3)
theme-preview --config custom_themes.json --theme ocean
theme-preview --config accessibility_themes.json --theme orange
theme-preview -c my_themes.json -t dark
# Use CLI tools
theme-manager --help
```
### ⚡ CLI Options (New in v0.2.3!)
The `theme-preview` command now supports flexible options:
- `--config`, `-c`: Specify custom theme configuration file (JSON format)
- `--theme`, `-t`: Set initial theme to apply on startup
- `--help`, `-h`: Show help message with usage examples
### 🎯 Usage Examples
```bash
# Preview with default themes
theme-preview
# Use custom accessibility-improved themes
theme-preview --config accessibility_themes.json
# Start with specific theme
theme-preview --theme amber
# Combine custom config and theme
theme-preview --config my_improved_themes.json --theme "Orange (Improved)"
```
#### Theme Editor Features
- **Color theory-based color selection** (complementary, triadic, analogous)
- **Real-time preview** of all changes
- **Component-specific settings** for detailed customization
- **Accessibility features** with contrast ratio checking
- **Import/Export** custom themes
#### Theme Preview Features
- **16 built-in themes** to test instantly
- **Live switching** between themes
- **All Qt widgets** displayed for comprehensive testing
### ♿ Accessibility Enhancements (New in v0.2.3!)
Qt-Theme-Manager now provides enhanced accessibility features:
#### Zebra Stripe Optimization
- **6% lightness contrast** for alternating row colors
- **WCAG-compliant design** for better readability
- **Eye-strain reduction** for long-term usage
- **Automatic application** to QListWidget, QTreeWidget, QTableWidget
#### Usage Example
```python
# Enable zebra stripes with improved accessibility
list_widget.setAlternatingRowColors(True)
controller.apply_theme_to_widget(list_widget)
# Colors are automatically optimized for accessibility
```
#### Available Accessibility-Enhanced Themes
- Orange (Improved) - Enhanced contrast for orange theme
- Yellow (Improved) - Improved readability for yellow theme
- Lime (Improved) - Optimized green-yellow theme
- Amber (Improved) - Enhanced amber theme with better contrast
### Legacy CLI Methods
For advanced users or scripting:
```bash
# List available themes
python -m theme_manager.cli.main list
# Set theme
python -m theme_manager.cli.main set dark
# Export QSS stylesheet
python -m theme_manager.cli.main export dark dark_theme.qss
# Show current theme
```bash
python -m theme_manager.main current
```
## Available Themes
The library includes 16 built-in themes:
### Core Themes
- **light** - Light mode with bright background
- **dark** - Dark mode with low-strain colors
- **high_contrast** - High contrast for accessibility
### Color Themes
- **blue** - Professional blue-based theme
- **green** - Natural green-based theme
- **purple** - Elegant purple-based theme
- **orange** - Warm orange-based theme
- **pink** - Playful pink-based theme
- **red** - Bold red-based theme
- **teal** - Calm teal-based theme
- **yellow** - Bright yellow-based theme
- **gray** - Simple gray-based theme
- **sepia** - Eye-friendly sepia theme
- **cyberpunk** - Neon cyberpunk theme
- **forest** - Natural forest theme
- **ocean** - Deep ocean blue theme
## Configuration
Themes are defined in `config/theme_settings.json`. Each theme includes:
- **Basic Colors**: background, text, primary, accent
- **Component Styles**: buttons, inputs, panels, toolbars
- **Text Variants**: primary, secondary, muted, success, warning, error
### Example Theme Configuration
```json
{
"dark": {
"name": "dark",
"display_name": "ダークモード",
"description": "暗い背景の低負荷テーマ",
"backgroundColor": "#1a1a1a",
"textColor": "#eeeeee",
"primaryColor": "#222831",
"accentColor": "#00adb5",
"button": {
"background": "#4a5568",
"text": "#ffffff",
"hover": "#00adb5"
}
}
}
```
## Advanced Usage
### Custom Theme Configuration
```python
from theme_manager.qt.controller import ThemeController
# Use custom config file
controller = ThemeController("/path/to/custom/config.json")
```
### Theme Preview Window
```python
from theme_manager.qt.preview import show_preview
# Show interactive preview window
preview_window = show_preview()
```
### Manual QSS Generation
```python
from theme_manager.qt.stylesheet import StylesheetGenerator
theme_config = {...} # Your theme configuration
generator = StylesheetGenerator(theme_config)
# Generate complete stylesheet
qss = generator.generate_qss()
# Generate specific widget styles
button_qss = generator.generate_widget_qss('button')
```
## Project Structure
```
theme_manager/
├── __init__.py # Main package exports
├── config/
│ └── theme_settings.json # Theme definitions
├── qt/
│ ├── __init__.py
│ ├── loader.py # JSON configuration loader
│ ├── stylesheet.py # QSS generation
│ ├── controller.py # Theme management
│ └── preview.py # GUI preview window
├── cli/
やえ│ ├── __init__.py
│ └── themectl.py # CLI interface
└── main.py # CLI entry point
```
## Testing
Run the test suite to verify functionality:
```bash
python test_theme_manager.py
```
This will test:
- Theme loading and configuration
- Stylesheet generation
- Theme switching
- CLI functionality
- QSS export
## API Reference
### ThemeController
Main class for theme management.
#### Methods
- `get_available_themes()` - Get all available themes
- `get_current_theme_name()` - Get current active theme
- `set_theme(theme_name, save_settings=True)` - Switch to specified theme
- `apply_theme_to_widget(widget)` - Apply theme to specific widget
- `apply_theme_to_application(app=None)` - Apply theme to entire application
- `export_qss(output_path, theme_name=None)` - Export QSS to file
### ThemeLoader
Handles loading and saving theme configurations.
#### Methods
- `load_settings()` - Load theme configuration from file
- `get_available_themes()` - Get available themes dict
- `get_current_theme()` - Get current theme name
- `update_current_theme(theme_name)` - Update and save current theme
### StylesheetGenerator
Generates QSS stylesheets from theme configurations.
#### Methods
- `generate_qss()` - Generate complete QSS stylesheet
- `generate_widget_qss(widget_type)` - Generate QSS for specific widget type
- `validate_theme_config(theme_config)` - Validate theme configuration
## License
[Add your license information here]
## Contributing
[Add contribution guidelines here]
## Changelog
### Version 0.0.1 (Initial Release)
- Basic theme management functionality
- 16 built-in themes
- CLI interface
- GUI preview window
- QSS export functionality
Raw data
{
"_id": null,
"home_page": "https://github.com/scottlz0310/Qt-Theme-Manager",
"name": "qt-theme-manager",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "scottlz0310 <scott.lz0310@gmail.com>",
"keywords": "theme, gui, qt, styling, pyside, pyqt",
"author": "scottlz0310",
"author_email": "scottlz0310 <scott.lz0310@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/1b/89/f763a2ffc75bbbca222570ff6ed319602c4d0249778b92bcad64ecec4cad/qt_theme_manager-0.2.3.tar.gz",
"platform": null,
"description": "# ThemeMa## \u2728 What's New in v0.2.1\n\n- \ud83d\udd27 **Fixed GUI Startup Issues**: Theme editor now launches reliably across all Qt frameworks\n- \u2699\ufe0f **Enhanced Qt Compatibility**: Full support for PyQt5, PyQt6, and PySide6\n- \ud83d\ude80 **Improved Startup Methods**: Both module and script execution work perfectly\n- \ud83d\udce6 **Better Error Handling**: Cleaner error messages and interruption support\n- \ud83e\udd16 **Automated Releases**: PyPI auto-publishing via GitHub Actionsfor PyQt5/PyQt6/PySide6\n\n[](https://github.com/scottlz0310/Qt-Theme-Manager/actions/workflows/ci-cd-tests.yml)\n[](https://badge.fury.io/py/qt-theme-manager)\n[](https://pypi.org/project/qt-theme-manager/)\n[](https://opensource.org/licenses/MIT)\n\nA comprehensive theme management library for PyQt5/PyQt6/PySide6 applications, providing dynamic theme switching with an advanced theme editor and 16+ built-in themes.\n\n## \u2728 What's New in v0.2.1\n\n- \ud83d\udd27 **Fixed GUI Startup Issues**: Theme editor now launches reliably across all Qt frameworks\n- \u2699\ufe0f **Enhanced Qt Compatibility**: Full support for PyQt5, PyQt6, and PySide6\n- \ud83d\ude80 **Improved Startup Methods**: Both module and script execution work perfectly\n- \ufffd **Better Error Handling**: Cleaner error messages and interruption support\n\n## Features\n\n- \ud83c\udfa8 **16+ Built-in Themes**: Light, Dark, High Contrast, and colorful themes\n- \u267f **Accessibility Enhanced**: 6% lightness contrast for zebra stripes (WCAG-compliant)\n- \u2728 **Advanced Theme Editor**: Professional-grade theme creation tools\n- \ud83d\udd04 **Dynamic Theme Switching**: Change themes at runtime without restarting\n- \ud83d\udcbe **Persistent Settings**: Theme preferences are automatically saved\n- \ud83d\udda5\ufe0f **GUI Tools**: Interactive editor and preview applications with CLI options\n- \ud83d\udcdf **Enhanced CLI Support**: Theme preview with custom configs and themes\n- \ud83c\udfaf **Easy Integration**: Simple API for applying themes to widgets/applications\n- \u26a1 **QSS Generation**: Automatic stylesheet generation from theme configurations\n- \ud83d\udd04 **Theme Format Conversion**: Convert custom themes to Qt-Theme-Manager format\n\n## \ud83d\ude80 30-Second Quick Start\n\n**Want to try the new theme editor?**\n\n```bash\n# Install and launch theme editor (Now with enhanced startup reliability!)\npip install qt-theme-manager[pyqt6]\ntheme-editor\n\n# Alternative launch methods (both work reliably):\npython -m theme_manager.qt.theme_editor\npython launch_theme_editor.py # If you cloned the repo\n```\n\n**Want to add beautiful themes to your Qt app in just 3 lines of code?**\n\n```python\nfrom theme_manager.qt.controller import apply_theme_to_widget\n\n# That's it! Apply current theme to any widget:\napply_theme_to_widget(your_widget)\n```\n\n**Want to switch themes dynamically?**\n\n```python\nfrom theme_manager.qt.controller import ThemeController\n\ncontroller = ThemeController()\ncontroller.set_theme(\"dark\") # or \"light\", \"blue\", \"cyberpunk\", etc.\ncontroller.apply_theme_to_application()\n```\n\n**16 beautiful themes ready to use:** `dark`, `light`, `blue`, `green`, `cyberpunk`, `ocean`, and more!\n\n---\n\n## Installation\n\n### Option 1: Install from PyPI (recommended)\n\n```bash\n# Basic installation\npip install qt-theme-manager\n\n# Install with your preferred Qt framework (Enhanced compatibility in v0.2.1!)\npip install qt-theme-manager[pyqt6] # For PyQt6 (recommended)\npip install qt-theme-manager[pyqt5] # For PyQt5 \npip install qt-theme-manager[pyside6] # For PySide6\n\n# Install with all Qt frameworks\npip install qt-theme-manager[all]\n```\n\n> **\u2728 New in v0.2.1**: Enhanced Qt framework compatibility ensures reliable operation across PyQt5, PyQt6, and PySide6.\n\n### Option 2: Install from source (for developers)\n\n```bash\ngit clone https://github.com/scottlz0310/Qt-Theme-Manager.git\ncd Qt-Theme-Manager\n\n# Create virtual environment (recommended)\npython -m venv venv\nsource venv/bin/activate # Linux/Mac\n# or: venv\\Scripts\\activate # Windows\n\n# Install with your preferred Qt framework\npip install -e .[pyqt6] # For PyQt6\n# pip install -e .[pyqt5] # For PyQt5\n# pip install -e .[pyside6] # For PySide6\n```\n\n### Requirements\n\n- Python 3.9+\n- PyQt5, PyQt6, or PySide6 (for GUI functionality)\n\n## Quick Start\n\n### Basic Usage\n\n```python\nfrom theme_manager.qt.controller import apply_theme_to_widget\nfrom PyQt5.QtWidgets import QApplication, QMainWindow\n\napp = QApplication([])\nwindow = QMainWindow()\n\n# Apply current theme to widget\napply_theme_to_widget(window)\n\nwindow.show()\napp.exec_()\n```\n\n### Using ThemeController\n\n```python\nfrom theme_manager.qt.controller import ThemeController\n\n# Initialize theme controller\ncontroller = ThemeController()\n\n# Get available themes\nthemes = controller.get_available_themes()\nprint(\"Available themes:\", list(themes.keys()))\n\n# Switch theme\ncontroller.set_theme(\"dark\")\n\n# Apply to application\ncontroller.apply_theme_to_application()\n```\n\n## Command Line Interface\n\n### \ud83c\udfa8 GUI Tools (Enhanced in v0.2.3!)\n\nAfter installing via pip, you can use these convenient GUI tools:\n\n```bash\n# Launch the advanced theme editor\ntheme-editor\n\n# Launch theme preview window \ntheme-preview\n\n# NEW: Launch with custom configuration and theme (v0.2.3)\ntheme-preview --config custom_themes.json --theme ocean\ntheme-preview --config accessibility_themes.json --theme orange\ntheme-preview -c my_themes.json -t dark\n\n# Use CLI tools\ntheme-manager --help\n```\n\n### \u26a1 CLI Options (New in v0.2.3!)\n\nThe `theme-preview` command now supports flexible options:\n\n- `--config`, `-c`: Specify custom theme configuration file (JSON format)\n- `--theme`, `-t`: Set initial theme to apply on startup\n- `--help`, `-h`: Show help message with usage examples\n\n### \ud83c\udfaf Usage Examples\n\n```bash\n# Preview with default themes\ntheme-preview\n\n# Use custom accessibility-improved themes\ntheme-preview --config accessibility_themes.json\n\n# Start with specific theme\ntheme-preview --theme amber\n\n# Combine custom config and theme\ntheme-preview --config my_improved_themes.json --theme \"Orange (Improved)\"\n```\n\n#### Theme Editor Features\n- **Color theory-based color selection** (complementary, triadic, analogous)\n- **Real-time preview** of all changes\n- **Component-specific settings** for detailed customization\n- **Accessibility features** with contrast ratio checking\n- **Import/Export** custom themes\n\n#### Theme Preview Features\n- **16 built-in themes** to test instantly\n- **Live switching** between themes\n- **All Qt widgets** displayed for comprehensive testing\n\n### \u267f Accessibility Enhancements (New in v0.2.3!)\n\nQt-Theme-Manager now provides enhanced accessibility features:\n\n#### Zebra Stripe Optimization\n- **6% lightness contrast** for alternating row colors\n- **WCAG-compliant design** for better readability\n- **Eye-strain reduction** for long-term usage\n- **Automatic application** to QListWidget, QTreeWidget, QTableWidget\n\n#### Usage Example\n```python\n# Enable zebra stripes with improved accessibility\nlist_widget.setAlternatingRowColors(True)\ncontroller.apply_theme_to_widget(list_widget)\n# Colors are automatically optimized for accessibility\n```\n\n#### Available Accessibility-Enhanced Themes\n- Orange (Improved) - Enhanced contrast for orange theme\n- Yellow (Improved) - Improved readability for yellow theme \n- Lime (Improved) - Optimized green-yellow theme\n- Amber (Improved) - Enhanced amber theme with better contrast\n\n### Legacy CLI Methods\n\nFor advanced users or scripting:\n\n```bash\n# List available themes\npython -m theme_manager.cli.main list\n\n# Set theme\npython -m theme_manager.cli.main set dark\n\n# Export QSS stylesheet\npython -m theme_manager.cli.main export dark dark_theme.qss\n\n# Show current theme\n\n```bash\npython -m theme_manager.main current\n```\n\n## Available Themes\n\nThe library includes 16 built-in themes:\n\n### Core Themes\n- **light** - Light mode with bright background\n- **dark** - Dark mode with low-strain colors \n- **high_contrast** - High contrast for accessibility\n\n### Color Themes\n- **blue** - Professional blue-based theme\n- **green** - Natural green-based theme\n- **purple** - Elegant purple-based theme\n- **orange** - Warm orange-based theme\n- **pink** - Playful pink-based theme\n- **red** - Bold red-based theme\n- **teal** - Calm teal-based theme\n- **yellow** - Bright yellow-based theme\n- **gray** - Simple gray-based theme\n- **sepia** - Eye-friendly sepia theme\n- **cyberpunk** - Neon cyberpunk theme\n- **forest** - Natural forest theme\n- **ocean** - Deep ocean blue theme\n\n## Configuration\n\nThemes are defined in `config/theme_settings.json`. Each theme includes:\n\n- **Basic Colors**: background, text, primary, accent\n- **Component Styles**: buttons, inputs, panels, toolbars\n- **Text Variants**: primary, secondary, muted, success, warning, error\n\n### Example Theme Configuration\n\n```json\n{\n \"dark\": {\n \"name\": \"dark\",\n \"display_name\": \"\u30c0\u30fc\u30af\u30e2\u30fc\u30c9\",\n \"description\": \"\u6697\u3044\u80cc\u666f\u306e\u4f4e\u8ca0\u8377\u30c6\u30fc\u30de\",\n \"backgroundColor\": \"#1a1a1a\",\n \"textColor\": \"#eeeeee\",\n \"primaryColor\": \"#222831\",\n \"accentColor\": \"#00adb5\",\n \"button\": {\n \"background\": \"#4a5568\",\n \"text\": \"#ffffff\",\n \"hover\": \"#00adb5\"\n }\n }\n}\n```\n\n## Advanced Usage\n\n### Custom Theme Configuration\n\n```python\nfrom theme_manager.qt.controller import ThemeController\n\n# Use custom config file\ncontroller = ThemeController(\"/path/to/custom/config.json\")\n```\n\n### Theme Preview Window\n\n```python\nfrom theme_manager.qt.preview import show_preview\n\n# Show interactive preview window\npreview_window = show_preview()\n```\n\n### Manual QSS Generation\n\n```python\nfrom theme_manager.qt.stylesheet import StylesheetGenerator\n\ntheme_config = {...} # Your theme configuration\ngenerator = StylesheetGenerator(theme_config)\n\n# Generate complete stylesheet\nqss = generator.generate_qss()\n\n# Generate specific widget styles\nbutton_qss = generator.generate_widget_qss('button')\n```\n\n## Project Structure\n\n```\ntheme_manager/\n\u251c\u2500\u2500 __init__.py # Main package exports\n\u251c\u2500\u2500 config/\n\u2502 \u2514\u2500\u2500 theme_settings.json # Theme definitions\n\u251c\u2500\u2500 qt/\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 loader.py # JSON configuration loader\n\u2502 \u251c\u2500\u2500 stylesheet.py # QSS generation\n\u2502 \u251c\u2500\u2500 controller.py # Theme management\n\u2502 \u2514\u2500\u2500 preview.py # GUI preview window\n\u251c\u2500\u2500 cli/\n\u3084\u3048\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u2514\u2500\u2500 themectl.py # CLI interface\n\u2514\u2500\u2500 main.py # CLI entry point\n```\n\n## Testing\n\nRun the test suite to verify functionality:\n\n```bash\npython test_theme_manager.py\n```\n\nThis will test:\n- Theme loading and configuration\n- Stylesheet generation\n- Theme switching\n- CLI functionality\n- QSS export\n\n## API Reference\n\n### ThemeController\n\nMain class for theme management.\n\n#### Methods\n\n- `get_available_themes()` - Get all available themes\n- `get_current_theme_name()` - Get current active theme\n- `set_theme(theme_name, save_settings=True)` - Switch to specified theme\n- `apply_theme_to_widget(widget)` - Apply theme to specific widget\n- `apply_theme_to_application(app=None)` - Apply theme to entire application\n- `export_qss(output_path, theme_name=None)` - Export QSS to file\n\n### ThemeLoader\n\nHandles loading and saving theme configurations.\n\n#### Methods\n\n- `load_settings()` - Load theme configuration from file\n- `get_available_themes()` - Get available themes dict\n- `get_current_theme()` - Get current theme name\n- `update_current_theme(theme_name)` - Update and save current theme\n\n### StylesheetGenerator\n\nGenerates QSS stylesheets from theme configurations.\n\n#### Methods\n\n- `generate_qss()` - Generate complete QSS stylesheet\n- `generate_widget_qss(widget_type)` - Generate QSS for specific widget type\n- `validate_theme_config(theme_config)` - Validate theme configuration\n\n## License\n\n[Add your license information here]\n\n## Contributing\n\n[Add contribution guidelines here]\n\n## Changelog\n\n### Version 0.0.1 (Initial Release)\n- Basic theme management functionality\n- 16 built-in themes\n- CLI interface\n- GUI preview window\n- QSS export functionality\n",
"bugtrack_url": null,
"license": null,
"summary": "A comprehensive theme management library for PyQt5/PyQt6/PySide6 applications",
"version": "0.2.3",
"project_urls": {
"Bug Tracker": "https://github.com/scottlz0310/Qt-Theme-Manager/issues",
"Documentation": "https://github.com/scottlz0310/Qt-Theme-Manager/blob/main/README.md",
"Homepage": "https://github.com/scottlz0310/Qt-Theme-Manager",
"Repository": "https://github.com/scottlz0310/Qt-Theme-Manager"
},
"split_keywords": [
"theme",
" gui",
" qt",
" styling",
" pyside",
" pyqt"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "78c29b7cdda3adc2d31f0bca3114f1522e59faddee9bcae88a84cc5889ae0a22",
"md5": "3db780514c335bce70e0c0ebc045f55d",
"sha256": "a53ada45db50eeb802db1e54ee36ff0005be81a68df32e8d5e53bb2198e4ddd7"
},
"downloads": -1,
"filename": "qt_theme_manager-0.2.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "3db780514c335bce70e0c0ebc045f55d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 40149,
"upload_time": "2025-07-22T14:25:37",
"upload_time_iso_8601": "2025-07-22T14:25:37.522422Z",
"url": "https://files.pythonhosted.org/packages/78/c2/9b7cdda3adc2d31f0bca3114f1522e59faddee9bcae88a84cc5889ae0a22/qt_theme_manager-0.2.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1b89f763a2ffc75bbbca222570ff6ed319602c4d0249778b92bcad64ecec4cad",
"md5": "e7d1fff4972f419af6da33e682bb7175",
"sha256": "8f22c25dcac7ec00c3da0ce2969953f460129a524fdd8356971723b78101b353"
},
"downloads": -1,
"filename": "qt_theme_manager-0.2.3.tar.gz",
"has_sig": false,
"md5_digest": "e7d1fff4972f419af6da33e682bb7175",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 88500,
"upload_time": "2025-07-22T14:25:38",
"upload_time_iso_8601": "2025-07-22T14:25:38.882635Z",
"url": "https://files.pythonhosted.org/packages/1b/89/f763a2ffc75bbbca222570ff6ed319602c4d0249778b92bcad64ecec4cad/qt_theme_manager-0.2.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-22 14:25:38",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "scottlz0310",
"github_project": "Qt-Theme-Manager",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "PyQt6",
"specs": [
[
">=",
"6.2.0"
]
]
}
],
"lcname": "qt-theme-manager"
}