如何在CustomTkinter进度条内创建透明标签
解决CustomTkinter进度条内标签背景不透明的问题
CustomTkinter的CTkLabel即使设置fg_color='transparent',作为CTkProgressBar的子组件时仍会出现视觉上的背景残留,这是因为CTkLabel默认带有圆角(corner_radius),圆角区域的背景处理导致了这个问题。结合以下修改可以解决:
修改后的代码
import customtkinter as ctk window = ctk.CTk() prog_num = ctk.IntVar(value=100) prog_str = ctk.StringVar(value='100/100') prog_frm = ctk.CTkFrame(window) prog_pbr = ctk.CTkProgressBar(prog_frm, variable=prog_num, height=15, progress_color='#fa2844') # 关键改动:添加corner_radius=0消除圆角背景残留,同时设置适配的文本颜色 prog_lbl = ctk.CTkLabel(prog_pbr, textvariable=prog_str, fg_color='transparent', corner_radius=0, text_color='white') prog_pbr.pack(fill='x', padx=5, pady=5) prog_lbl.place(rely=0.5, relx=0.5, anchor='center') # 居中显示,按需调整位置 prog_frm.pack(fill='x', padx=10, pady=10) window.mainloop()
核心改动说明
corner_radius=0:移除CTkLabel默认的圆角,避免圆角区域的背景渲染残留,确保透明效果生效text_color='white':根据进度条的红色(#fa2844)设置白色文本,保证文字在进度条上的可读性,可根据进度条颜色自行调整- 标签位置可根据需求调整,比如保持左对齐则用
relx=0, anchor='w'
内容的提问来源于stack exchange,提问作者Jam
相关产品推荐
相关产品推荐

