You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 14:24:59