ttk.Combobox(clam主题只读模式)失焦后选中文本消失问题求助
解决Clam主题下只读ttk.Combobox失去焦点后文本消失的问题
在Clam主题中使用只读状态的ttk.Combobox时,会出现点击下拉图标收起后选中文本消失的问题,其他主题(如Alt)无此现象。这是因为Clam主题在readonly状态且组件失去焦点时,默认文本颜色和你设置的白色背景色重合,导致文本肉眼不可见。
修复方法很简单,只需在样式映射中明确指定readonly状态下的文本颜色,确保和背景色形成对比:
import tkinter as tk, tkinter.ttk as ttk root = tk.Tk() style = ttk.Style(root) style.theme_use("clam") style.configure("TCombobox", fieldbackground="white", background="white") # 添加文本颜色的状态映射,保证readonly状态下文本始终可见 style.map("TCombobox", fieldbackground=[("readonly", "white")], background=[("readonly", "white")], foreground=[("readonly", "black"), ("readonly", "focus", "black")]) cb = ttk.Combobox(root, state="readonly", values=("apples", "oranges", "bananas")) cb.set("apples") cb.pack(padx=40, pady=40) root.mainloop()
这段代码通过给TCombobox的foreground属性添加状态映射,强制readonly状态下(无论是否获得焦点)文本颜色为黑色,这样即使背景是白色,文本也能清晰显示,不会出现“消失”的情况。
内容的提问来源于stack exchange,提问作者vengy
相关产品推荐
相关产品推荐

