Py-Window-Styles 是一个强大的 Python 库,它让为应用程序窗口添加炫酷的 Windows 11 风格标题栏和主题变得非常简单。无论是自定义窗口颜色、调节透明度,还是添加文件拖放功能,它都能轻松实现,为你的 UI 设计增添专业感和现代感。

支持的UI库与功能
Py-Window-Styles 的一大亮点在于其广泛的兼容性。它几乎支持所有主流的 Python UI 库,包括但不限于:
- Tkinter
- Customtkinter
- PyQt
- PySide
- WxPython
- Pygame
- Kivy
- PySimpleGUI
- DearPyGui
除了广泛的库支持,它还提供了丰富而实用的功能,涵盖窗口样式、主题与颜色自定义等高级特性:
- 预设窗口样式:提供多种 Windows 11 风格的预设,如 Mica、Acrylic、Aero、Transparent 等,同时也包含 Windows 10 主题和一些经典样式(如 Win7、Inverse),让你的窗口外观脱颖而出。
- 自定义颜色:允许你自由定义标题栏颜色、标题文本颜色和窗口边框颜色,支持使用十六进制颜色代码,轻松实现个性化设计。
- 透明度控制:不仅可以设置整个小部件的透明度,甚至可以指定小部件内部的某种颜色变为透明,实现更灵活的视觉效果。
- 文件拖放:能够轻松为小部件添加文件拖放功能,极大简化用户的交互操作。
- 获取系统主题颜色:可以获取当前 Windows 系统的 Accent Color(强调色),使你的应用界面能与系统主题保持协调一致。

安装与使用
安装 Py-Window-Styles 非常简单,只需一条 pip 命令:
pip install pywinstyles
它的使用方法同样直观。首先导入库,然后调用相应的函数即可应用样式、主题或修改颜色。以下是一些核心功能的示例代码:
应用窗口样式:
import pywinstyles
import tkinter as tk
root = tk.Tk()
# 应用 Mica 样式
pywinstyles.apply_style(root, "mica")
root.mainloop()
更改标题栏颜色:
pywinstyles.change_header_color(root, color="#00524d")
更改标题文本颜色:
pywinstyles.change_title_color(root, color="white")
更改边框颜色:
pywinstyles.change_border_color(root, color="#00ffff")
设置小部件透明度:
# 设置按钮透明度为 50%
pywinstyles.set_opacity(my_button, value=0.5)
# 设置标签中白色部分透明
pywinstyles.set_opacity(my_label, color="white")
添加文件拖放功能:
def drop_func(file):
print(file)
pywinstyles.apply_dnd(my_button, drop_func)
高级用法:与其他UI库的集成
Py-Window-Styles 的设计理念就是与多种 UI 库兼容,因此无论你使用的是 Tkinter、PyQt 还是其他库,其基本用法都大同小异。例如,在 PyQt 中,你只需要将上面示例中的 root 对象替换为你自己的主窗口对象即可。虽然不同的 UI 库可能需要针对其特定的窗口对象进行细微调整,但总体的 API 和使用逻辑保持了高度的一致性。
常见问题与解决方案
- 兼容性问题:尽管 Py-Window-Styles 支持多种 UI 库,但在某些特定库或复杂场景下,可能需要进行微调才能达到最佳效果。建议参考项目的官方文档和示例代码。
- 性能问题:部分样式,如 Aero 和 Transparent,可能会消耗较多的 GPU 资源。如果你在运行中遇到性能瓶颈,可以尝试切换到其他对性能更友好的样式,如 Mica。
- 错误处理:如果在使用过程中遇到错误,请首先检查代码逻辑和系统环境配置。你也可以查阅项目在 GitHub 上的 issue 列表,看看是否有其他人遇到过类似问题及解决方案。
总结
总而言之,Py-Window-Styles 是一个功能强大且易于上手的 Python 库,它能显著提升你的 Python 桌面应用程序的视觉外观和用户体验。其简洁的 API、广泛的库兼容性以及丰富的定制功能,使其成为任何希望改进应用界面的 Python 开发者的得力工具。
如果你对这类提升开发效率的工具和 开源实战 项目感兴趣,欢迎来 云栈社区 发现更多优质资源与技术讨论。
项目地址:https://github.com/Akascape/py-window-styles