QtFramelessWindow
A cross-platform frameless window library based on QtPy (PyQt/PySide).
Features
- Move
- Stretching
- Window shadow
- Window animation
- Win11 snap layout
- Win10 acrylic blur
- Win11 mica blur
- Win7 Aero blur
- MacOS blur
- Disable screen capture
Install
To install use pip:
pip install QtFramelessWindow
Or clone the repo:
git clone https://github.com/XiaoshuDeXiaowo/QtFramelessWindow
cd QtFramelessWindow
pip install .
Requirements
| Platform | Requirement |
|---|---|
| Win32 | pywin32 |
| MacOS | pyobjc |
Usage
To use the frameless window, you only need to inherit FramelessWindow. Here is a minimal example:
import sys
from PySide2.QtWidgets import QApplication
from QtFramelessWindow import FramelessWindow
class Window(FramelessWindow):
def __init__(self, parent=None):
super().__init__(parent=parent)
self.setWindowTitle("PyQt-Frameless-Window")
self.titleBar.raise_()
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Window()
demo.show()
sys.exit(app.exec_())
For more complex requirements, see examples.
Examples
- Normal frameless window
- Acrylic frameless window
Notes
-
FramelessWindowprovides a default custom title bar. If you don't like it, just rewrite it as demo.py does. -
Moving the acrylic window on Win10 may get stuck. At present, there is no good solution. Maybe you can disable the acrylic effect when moving the window, but I haven't done this in the source code.
-
Snap layout is not enabled by default. See zhiyiYo/PyQt-Frameless-Window#56 to learn how to enable it.
-
If you encounter this problem on Windows:
ImportError: DLL load failed while importing win32api
see zhiyiYo's answer on stackoverflow or blog for the solution.
See Also
Here are some projects that use PyQt-Frameless-Window:
- zhiyiYo/QFluentWidgets: A fluent design widgets library based on Qt
- zhiyiYo/Groove: A cross-platform music player based on PyQt5
- zhiyiYo/Alpha-Gobang-Zero: A gobang robot based on reinforcement learning
Reference
- zhiyiYo/PyQt-Frameless-Window:A cross-platform frameless window based on PyQt/PySide, support Win32, Linux and macOS.
- wangwenx190/framelesshelper: Frameless windows for Qt Widgets and Qt Quick applications. Support Win32, X11, Wayland and macOS
- libxcb: Basic Graphics Programming With The XCB Library
License
QtFramelessWindow is licensed under LGPLv3.
Copyright © 2021-2026 by zhiyiYo. Copyright © 2026 XiaoshuDeXiaowo.
Metadata
Release files for QtFramelessWindow 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qtframelesswindow-0.0.1.tar.gz | 25.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qtframelesswindow-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 56.7 kB
Release files / qtframelesswindow-0.0.1.tar.gz
| Download URL | qtframelesswindow-0.0.1.tar.gz |
|---|---|
| Size | 25.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c496c6b6703abf32cf036e211a2c9129031b202633b9aa0bfc2bad81b1be654b
|
|
BLAKE2b-256 checksum How to use checksums |
e09a025d5077e210ad90f0c8f39abb94daaa7a41e26afa3fc823e04743063b9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / qtframelesswindow-0.0.1-py3-none-any.whl
| Download URL | qtframelesswindow-0.0.1-py3-none-any.whl |
|---|---|
| Size | 31.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b6624ac947a2cc21c530b3160f65b6f1dc5e76b6598eb38ba0cb214889da764d
|
|
BLAKE2b-256 checksum How to use checksums |
355b1e671edbc7f381c04c6c4db299f93094660e50cd96d095143ba388c5ee6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|