【发布时间】:2022-01-17 02:20:30
【问题描述】:
我正在使用 tkinter 开发文本标记工具。它主要是围绕使用 Text 小部件上的各种标记方法构建的。然而,让我抓狂的是,如果标签重叠,我无法在标记文本周围获得正确的边框。
考虑以下一段文本,用方括号显示的两个不同标签标记:[my [example]]
当我使用 .tag_configure("outer", borderwidth=1, relief="solid") 时,我想在“我的示例”周围设置一个边框,但是,我得到 两个 边框:如果背景颜色是,则围绕“我的”和“示例”周围设置为“示例”。如果不涉及背景颜色,它可以按我的意愿工作。但我真的需要改变背景颜色的能力!
最小的工作示例:
import tkinter as tk
class Application(tk.Frame):
def __init__(self, master):
super().__init__(master)
self.grid(row=0, column=0, sticky=tk.N+tk.S+tk.W+tk.S)
self.text = tk.Text(self)
self.text.insert("1.0", "my example")
self.text.tag_add("outer", "1.0", "end-1c") # "my example"
self.text.tag_configure("outer", borderwidth=1, relief="solid")
self.text.tag_add("inner", "1.3", "end-1c") # "example"
self.text.tag_configure("inner", background="white") # white to see the problem better
self.text.grid(row=0, column=0)
if __name__ == "__main__":
root = tk.Tk()
app = Application(root)
app.mainloop()
问题:有没有办法(可能是 hacky)在这些“外部”标签周围设置单边框?
我想要什么:
我得到了什么:
【问题讨论】:
标签: python tkinter tkinter-text