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

如何修改ttk.Entry选中时外围颜色并移除界面灰色块?

Ttk.Entry样式问题解决方案

原始代码

import tkinter as tk
from tkinter import ttk

class MainApplication(tk.Frame):
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent, *args, **kwargs)

        style = ttk.Style()
        style.theme_use('clam')
        style.configure('TLabelframe', background='#ffffff', bordercolor='black')
        style.configure('TEntry', bordercolor='black')
        style.map('TEntry', lightcolor=[('focus', 'red')])

        frame = ttk.LabelFrame(root)
        frame.pack(side="top", padx=20, pady=20, ipadx=20, ipady=20)

        entry = ttk.Entry(frame)
        entry.grid(row=1, column=0, ipady=5, padx=20, pady=20)

if __name__ == "__main__":
    root = tk.Tk()
    root.configure(bg='#ffffff')
    MainApplication(root).pack(side="top", fill="both", expand=True)
    root.mainloop()

1. 修改Entry选中时的偏蓝外围颜色

选中Entry时的偏蓝色外围是组件获得焦点后的边框颜色,通过style.map为TEntry添加bordercolor的状态映射即可修改:

# 在原有style.map代码基础上添加bordercolor映射
style.map('TEntry', 
          lightcolor=[('focus', 'red')],
          bordercolor=[('focus', 'black')]) # 替换成你需要的颜色值

如果需要统一默认边框与焦点边框样式,也可以先通过configure设置基础边框色,再用映射覆盖焦点状态:

style.configure('TEntry', bordercolor='black')
style.map('TEntry', 
          lightcolor=[('focus', 'red')],
          bordercolor=[('focus', '#ff0000')]) # 焦点时边框设为红色

2. 移除灰色块

这个灰色块是ttk.LabelFrame默认的标签占位区域——即便未设置标签文本,组件仍会预留标签位置,显示灰色背景。移除方式有两种:

  • 方法一:统一标签区域背景色
    修改TLabelframe的样式,让标签背景与主背景一致,同时给LabelFrame设置空文本:
    # 调整TLabelframe样式
    style.configure('TLabelframe', background='#ffffff', bordercolor='black', labelbackground='#ffffff')
    # 创建LabelFrame时设置空文本
    frame = ttk.LabelFrame(root, text='')
    
  • 方法二:彻底隐藏标签区域
    通过样式设置直接关闭标签显示,消除占位:
    style.configure('TLabelframe', background='#ffffff', bordercolor='black', labeloutside=False, labelmargins=(0,0,0,0))
    

内容的提问来源于stack exchange,提问作者Pisa Ponente

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:20:30