CustomTkinter:给 Python GUI 换个现代皮肤
TomSchimansky 开源的 CustomTkinter,在 GitHub 上拿到了 13,396 个 Star:


CustomTkinter 是一个基于 Tkinter 的 Python UI 库。它提供了一套新的 widget,外观现代,且支持深度定制。这些 widget 的创建和使用方式与标准 Tkinter 完全一致,也能和普通 Tkinter 组件混用。
这个库最实用的特性是自动适配系统主题。widget 和窗口颜色会跟随系统外观设置,也可以手动指定为 light 或 dark 模式。同时支持 HighDPI 缩放,在 Windows 和 macOS 上显示清晰。最终效果在各平台保持一致。
安装
通过 pip 直接安装:
pip3 install customtkinter
升级现有版本:
pip3 install customtkinter --upgrade
快速上手
一个只有单个按钮的示例:
import customtkinter
customtkinter.set_appearance_mode("System")
customtkinter.set_default_color_theme("blue")
app = customtkinter.CTk()
app.geometry("400x240")
def button_function():
print("button pressed")
button = customtkinter.CTkButton(master=app, text="CTkButton", command=button_function)
button.place(relx=0.5, rely=0.5, anchor=customtkinter.CENTER)
app.mainloop()
这段代码在 macOS 上运行的效果是一个居中的现代风格按钮窗口。使用 CTkButton 替代 tkinter.Button,其余逻辑与 Tkinter 没有区别。
核心 widget
CustomTkinter 覆盖了常用 GUI 组件:
- CTkButton:支持图文混排,通过
compound参数控制布局 - CTkFrame / CTkScrollableFrame:滚动框架支持水平和垂直方向
- CTkSlider / CTkSwitch / CTkProgressBar:表单控件
- CTkEntry / CTkTextbox:文本输入
- CTkComboBox / CTkOptionMenu:下拉选择
- CTkTabview / CTkSegmentedButton:标签页和分段按钮
所有 widget 都支持主题色配置,内置 blue、dark-blue、green 等预设主题。
与现有生态兼容
由于 CustomTkinter 的 API 设计和 Tkinter 一致,现有项目迁移成本很低。第三方 Tkinter widget(如 TkinterMapView)也能直接嵌入使用,不会破坏整体视觉风格。
适用场景
如果你正在用 Python 写桌面工具,又不想被 Tkinter 的默认外观限制,CustomTkinter 是一个直接的替换方案。学习曲线平缓,代码改动量小,效果提升明显。
工具,又不想被 Tkinter 的默认外观限制,CustomTkinter 是一个直接的替换方案。学习曲线平缓,代码改动量小,效果提升明显。
389

被折叠的 条评论
为什么被折叠?



