qtframelesskit¶
Welcome to qtframelesskit¶
qtframelesskit is a lightweight, pure-Python framework designed to build native-feeling frameless windows in Qt on Windows. It works seamlessly across PySide6, PyQt6, and PyQt5 via qtpy, with zero C++ compilation or binary wheel requirements.
Why Standard Qt Frameless Windows Fall Short¶
In standard Qt applications, developers typically create a borderless window using:
While this removes the operating system's title bar, it strips away fundamental Windows Desktop Window Manager (DWM) capabilities:
| Lost OS Feature | Impact on Standard Qt Frameless Windows | How qtframelesskit Solves It |
|---|---|---|
| DWM Drop Shadows | The window becomes flat; developers must emulate shadows by drawing blurry margins in software. | Retains true native DWM drop shadows via non-client frame calculation (WM_NCCALCSIZE). |
| Snap Layouts Menu | Hovering over custom maximize buttons does nothing on Windows 11. | Full Windows 11 Snap Layouts integration via WM_NCHITTEST and HTMAXBUTTON. |
| Smooth Resize Borders | Edge resizing requires manual mouse tracking, often resulting in jerky, unaccelerated resizing. | Hardware-accelerated native Win32 resize borders with proper cursors and constraints. |
| System Animations | Windows lose standard minimize, restore, Aero Shake, and maximize animations. | Retains full DWM system animations and transitions. |
| Taskbar Collision | Maximized frameless windows often overlap the Windows taskbar. | Accurately calculates work area boundaries to avoid taskbar overlap. |
| Fluent Materials | Cannot easily apply native Windows 11 Mica or Acrylic backdrops. | First-class support for Mica, Mica Alt, and Acrylic blur-behind backdrops. |
qtframelesskit restores these native Win32 window mechanics through ctypes and pywin32 while keeping the Qt widget API clean, idiomatic, and non-invasive.
Key Capabilities¶
-
Windows 11 Snap Layouts
Hovering over the maximize button triggers the native Windows 11 Snap Layouts flyout menu. Snapping windows into grid layouts works out of the box.
-
Mica & Acrylic Backdrops
Native Windows 11 Mica, Mica Alt (tabbed surfaces), and Fluent Acrylic blur-behind materials with customizable tint gradients.
-
TitleBar with Integrated QMenuBar
Embed a standard
QMenuBardirectly into the custom title bar with automated Fluent styling, centered titles, and vector control buttons. -
Comprehensive Window Types
Drop-in replacements for
QMainWindow,QWidget, andQDialogthat automatically configure frameless layouts and event filtering.
Windows Compatibility¶
qtframelesskit automatically detects the host Windows OS build at runtime and gracefully enables modern features or falls back to supported behavior:
| Feature | Windows 11 22H2+Build >= 22621 |
Windows 11 21H2Build >= 22000 |
Windows 10 1809+Build >= 17763 |
|---|---|---|---|
| Frameless DWM Drop Shadows | Full | Full | Full |
| Snap Layouts Hover Menu | Full | Full | — |
| DWM Rounded Corners | Full | Full | — |
| Mica Material | Full | Full | — |
| Mica Alt (Tabbed Material) | Full | — | — |
| Acrylic Blur-Behind | Full | Full | Full |
| Dark / Light Theme Sync | Full | Full | Full |
| Per-Monitor DPI Scaling | Full | Full | Full |
Platform Requirement
qtframelesskit relies on native Windows APIs (dwmapi.dll, user32.dll). On non-Windows platforms (Linux, macOS), importing qtframelesskit raises PlatformNotSupportedError.
Quick Navigation¶
- Ready to start? Check out the Getting Started Guide.
- Need specific window patterns? Browse the Window Types Guide.
- Curious how it works under the hood? Read about our Architecture and Snap Layouts Mechanism.