The aim of this project is to apply the Mica effect on python applications made with Python, like Tkinter, PyQt/PySide, WxPython, Kivy, etc.
This will work on any windows version, including the new released dev builds where the mica API is public.
View this project on PyPi View this project on GitHub
python -m pip install win32mica
- Windows 11
- A window set to not have a transparent background and to have extended composition enabled* (It might work with other settings, but nothing is guaranteed.)
- The HWND (identifier) of that window. More info: what is a hwnd?
- OPTIONAL: The window must have semi-transparent widgets/controls in order to recreate the transparency effect on the controls.
- OPTIONAL: Know if Windows has dark or light mode enabled. This can be checked with the
darkdetect
module
#####################################################################
# #
# Those examples are oversimplified, please see the examples folder #
# for detailed usage with each UI library. #
# #
#####################################################################
hwnd = qtwindow.winId().__int__() # On a PyQt/PySide window
hwnd = tkwindow.frame() # On a tkinter window
# You'll need to adjust this to your program
from win32mica import MICAMODE, ApplyMica
mode = MICAMODE.DARK # Dark mode mica effect
mode = MICAMODE.LIGHT # Light mode mica effect
# Choose one of them following your app color scheme
import darkdetect # You can pass the darkdetect return value directly, since the ColorMode accepts bool values (True -> dark, False -> light)
mode = darkdetect.isDark()
win32mica.ApplyMica(hwnd, mode)
You can check out the examples folder for detailed use in Tk and PySide/PyQt.
Those are PySide2 windows with custom widgets.
For more information about possible errors/mistakes, make sure to add the following before using win32mica:
# Add these lines at the very start of your script
import win32mica
win32mica.debugging = True