Skip to main content

Qt Custom Widgets v2.0.3 Released - Enhanced Hamburger Menu & Performance Improvements

· 5 min read
Khamisi Kibet
Creator of Qt Custom Widgets

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 sizeWrap property automatically adjusts menu dimensions to fit content
  • Precision Alignment: center option 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?

  1. Installation:

    pip install QT-PyQt-PySide-Custom-Widgets
  2. Explore Learning Resources:

  3. 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.