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

如何修改Python TTK Combobox失焦状态下的前景色与背景色

TTK Combobox 只读状态失焦颜色修改方案

你之前代码中使用的backgroundcolor、foregroundcolor不是TTK样式的合法配置参数,同时readonly状态的控件样式优先级高于基础样式配置,需要单独通过状态映射指定对应颜色才能生效。

修改后的完整代码如下:

import tkinter as objTK
from tkinter import ttk as objTTK

objWindow = objTK.Tk()

objStyle = objTTK.Style()
objStyle.theme_use("clam")
# 基础样式配置
objStyle.configure("TCombobox", 
    fieldbackground="white",  # 输入区域背景色
    foreground="black",       # 文本前景色
    background="white"        # 下拉按钮区域背景色
)
# 状态映射:指定不同状态下的颜色
objStyle.map("TCombobox",
    fieldbackground=[("readonly", "white")],
    foreground=[("readonly", "black")],
    # 聚焦选中状态可按需调整,不需要修改可删除
    selectbackground=[("readonly focus", "#0078d7")],
    selectforeground=[("readonly focus", "white")]
)

tMonths = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
cbDtRStM = objTTK.Combobox(master=objWindow, width=10, state="readonly", values=tMonths)
cbDtRStM.pack()

btnButton = objTTK.Button(master=objWindow, text="Test")
btnButton.pack()

objWindow.bind("<Escape>", lambda funcWinSum: objWindow.destroy())

objWindow.mainloop()

运行后readonly状态失焦时,输入框文本会显示为黑色、背景为白色,符合你的需求。

内容的提问来源于stack exchange,提问作者Sandeep S D

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:36:01