如何移除tkinter Text组件内部标签背景的边框?
解决Tkinter Text组件与标签背景间的边框问题
你看到的“边框”其实是Text组件的内部填充(padding),并非真正的边框。即便设置了bd=0和highlightthickness=0,Text组件默认仍会在内容区域和组件边缘保留少量内边距,导致标签背景和Text底色之间出现间隙。
要彻底消除这个间隙,只需在创建Text组件时添加padx=0和pady=0参数,修改后的代码如下:
import tkinter as tk kwargs = dict(highlightthickness=0, bd=0, padx=0, pady=0) root = tk.Tk() root.geometry("200x200") text = tk.Text(root, wrap="none", bg="yellow", **kwargs) text.pack() text.insert("end", ("#"*30+"\n")*30) text.tag_config("mytag", background="blue") text.tag_add("mytag", "1.0", "end") root.mainloop()
如果在Ubuntu系统中仍存在细微间隙(可能是GTK主题的强制样式影响),可以额外添加一行Tcl命令强制关闭内部填充:
# 在创建text组件后添加这行代码 text.tk.call("set", "::tk::text::Pad", "0")
内容的提问来源于stack exchange,提问作者TheLizzard
相关产品推荐
相关产品推荐

