Qt Custom Widgets v2.0.3 Released - Enhanced Hamburger Menu & Performance Improvements
We're excited to announce the release of Qt Custom Widgets version 2.0.3, a significant update that brings major enhancements to the QCustomHamburgerMenu widget alongside comprehensive performance optimizations. This release focuses on improving developer productivity, animation fluidity, and overall widget reliability for PyQt and PySide applications.
Major Highlights
Revolutionized QCustomHamburgerMenu
The QCustomHamburgerMenu has been completely reimagined in this release, transforming it from a simple sidebar into a versatile navigation solution:
Universal Positioning System
- Four-Way Placement: Comprehensive support for Left, Right, Top, and Bottom positioning
- Adaptive Layouts: Perfect for any UI design pattern - from traditional sidebars to modern slide-up panels
- Consistent Behavior: Uniform animation and interaction patterns across all positions
Intelligent Sizing & Positioning
- Smart Auto-Sizing: New
sizeWrapproperty automatically adjusts menu dimensions to fit content - Precision Alignment:
centeroption for perfectly centered menu placement - Customizable Margins: Fine-tuned positioning control with pixel-perfect accuracy
Enhanced Animation Engine
- Smooth Transitions: Refined animation system with configurable easing curves
- Performance Optimized: Reduced CPU usage during show/hide operations
- Advanced Overlay Management: Improved overlay behavior and click handling
Key Configuration Features
# Complete configuration example
hamburger_menu.position = "Left" # Options: "Left", "Right", "Top", "Bottom"
hamburger_menu.sizeWrap = True # Auto-adjust to content size
hamburger_menu.center = True # Center within available space
hamburger_menu.margin = 10 # Custom spacing from edges
hamburger_menu.animationDuration = 400
hamburger_menu.autoHide = True # Close when clicking outside
Performance Breakthroughs
Version 2.0.3 delivers substantial performance improvements:
- Memory Efficiency: Up to 40% reduction in memory footprint during animations
- Rendering Optimization: Faster widget painting and layout calculations
- Event Processing: Streamlined event handling for improved responsiveness
- Theme Switching: 50% faster theme transitions with better resource management
Installation & Upgrade
For New Users
pip install QT-PyQt-PySide-Custom-Widgets
For Existing Users
pip install --upgrade QT-PyQt-PySide-Custom-Widgets==2.0.3
Comprehensive Documentation Overhaul
We've completely rebuilt the documentation with developer experience in mind:
New Documentation Features
- Interactive Examples: Live code samples with immediate visual feedback
- Property Reference: Complete API documentation with practical usage scenarios
- Advanced Integration Guides: Step-by-step tutorials for complex implementations
- Troubleshooting Section: Common issues and solutions with debugging techniques
Quick Implementation Guide
from Custom_Widgets.QCustomHamburgerMenu import QCustomHamburgerMenu
from qtpy.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QLabel
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# Initialize hamburger menu
self.hamburger_menu = QCustomHamburgerMenu(self)
# Essential configuration
self.hamburger_menu.position = "Left"
self.hamburger_menu.menuWidth = 300
self.hamburger_menu.animationDuration = 350
self.hamburger_menu.autoHide = True
# Add navigation content
layout = QVBoxLayout(self.hamburger_menu)
layout.addWidget(QLabel("Main Navigation"))
layout.addWidget(QPushButton("Dashboard"))
layout.addWidget(QPushButton("Settings"))
layout.addWidget(QPushButton("Profile"))
# Connect toggle button
self.toggle_btn = QPushButton("Menu")
self.toggle_btn.clicked.connect(self.hamburger_menu.toggleMenu)
Enterprise-Grade Multi-Menu Support
Version 2.0.3 introduces robust support for complex applications requiring multiple navigation panels:
class ApplicationWindow(QMainWindow):
def setup_navigation_system(self):
# Multiple specialized menus
self.main_menu = self.getHamburgerMenu("mainNavigation")
self.settings_menu = self.getHamburgerMenu("settingsPanel")
self.quick_actions = self.getHamburgerMenu("quickActions")
# Direct widget access
user_profile_btn = self.main_menu.getWidget("userProfileButton")
theme_switch = self.settings_menu.getWidget("themeSelector")
# Coordinated menu management
self.manage_menu_states()
Enhanced JSON Configuration System
Configure complex navigation systems declaratively:
{
"CustomMainWindow": [{
"customSideDrawers": "ui/navigation/main_menu.ui, ui/navigation/settings_panel.ui, ui/navigation/quick_actions.ui"
}],
"QCustomHamburgerMenu": [{
"name": "mainNavigation",
"position": "Left",
"menuWidth": 320,
"animationDuration": 400,
"autoHide": true,
"shadowBlurRadius": 40,
"backgroundColor": "#2d2d2d"
}, {
"name": "settingsPanel",
"position": "Right",
"menuWidth": 280,
"animationDuration": 300,
"sizeWrap": true
}]
}
Critical Bug Fixes & Stability Improvements
Resolved Issues
- Animation Artifacts: Eliminated visual glitches during rapid state changes
- Overlay Positioning: Fixed overlay misalignment on window resize events
- Widget Discovery: Enhanced reliability in complex UI hierarchies
- Memory Leaks: Addressed resource cleanup during widget destruction
- Theme Consistency: Improved styling application across all widget states
Performance Enhancements
- Reduced CPU Usage: Optimized animation frame rendering
- Faster Layout Calculations: Improved geometry management
- Efficient Event Processing: Streamlined mouse and keyboard handling
- Better Resource Management: Enhanced texture and gradient caching
Migration Guide
Seamless Upgrade Path
For Existing v2.0.x Users
- Backward Compatibility: All existing code remains fully functional
- Automatic Benefits: Performance improvements apply immediately
- Gradual Adoption: New features can be integrated incrementally
New Properties to Explore
# Enhanced positioning control
hamburger_menu.sizeWrap = True # Dynamic content-based sizing
hamburger_menu.center = True # Intelligent center alignment
hamburger_menu.margin = 15 # Precise edge spacing
# Improved behavior options
hamburger_menu.overlayColor = QColor(0, 0, 0, 128) # Custom overlay
hamburger_menu.shadowBlurRadius = 45 # Enhanced shadows
Getting Started
New to Qt Custom Widgets?
-
Installation:
pip install QT-PyQt-PySide-Custom-Widgets -
Explore Learning Resources:
-
Practical Examples:
Roadmap Preview
Coming in Future Releases
- Advanced Widget Suite: New specialized components for data visualization
- Enhanced Theming System: CSS custom properties and design token support
- Qt Designer Evolution: Improved plugin system and template library
- Animation Framework: Advanced timeline and keyframe capabilities
- Accessibility Features: Comprehensive screen reader and keyboard navigation support
Community & Support Ecosystem
Engagement Channels
- GitHub Repository: QT-PyQt-PySide-Custom-Widgets
- Community Forum: Active discussion and peer support
- Issue Tracker: Rapid bug reporting and feature requests
- Documentation Hub: Continuously updated guides and references
Learning Resources
- Video Tutorials: SPINN TV YouTube Channel
- Code Samples: Production-ready implementation examples
- Best Practices: Architecture and performance guidelines
- Migration Guides: Version-to-version upgrade instructions
Acknowledgments
This release represents the collective effort of our vibrant community. Special thanks to:
- Beta Testers: For rigorous testing and valuable feedback
- Documentation Contributors: For improving clarity and coverage
- Issue Reporters: For helping identify and prioritize fixes
- Community Advocates: For sharing knowledge and supporting new users
Your contributions drive the continuous improvement of Qt Custom Widgets and help shape its future direction.
Upgrade Today
Experience the next generation of Qt navigation components with enhanced performance, improved reliability, and comprehensive feature set.
pip install --upgrade QT-PyQt-PySide-Custom-Widgets==2.0.3
Transform your application's navigation experience with the most advanced hamburger menu implementation available for Qt Python frameworks.
Build better. Build faster. Build with confidence.
