Python Tkinter文本背景

2024-06-02 05:51:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为Tkinter文本小部件设置背景色-我正在尝试复制示例herehere,这两个示例似乎都表明我可以这样做:

w.create_text(*textSet, text=i[3], font=("Helvetica", 16), bg="white"))

但是当我尝试这个的时候,我从Tkinker那里得到了一个错误:

w.create_text(*textSet, text=i[3], font=("Helvetica", 16), bg="white")
File "C:\python27\lib\lib-tk\Tkinter.py", line 2213, in create_text
return self._create('text', args, kw)
File "C:\python27\lib\lib-tk\Tkinter.py", line 2189, in _create
*(args + self._options(cnf, kw))))
_tkinter.TclError: unknown option "-bg"

我试过用“背景”键,结果是一样的。

文本需要覆盖在一个圆圈上,圆圈的大小是动态生成的,因此当圆圈小于文本时,我需要一个坚实的背景,这样圆圈的线就不会打断文本。

有没有迹象表明我做错了什么?这是整个部分:

master = Tk()
w = Canvas(master, width=1000, height=1000)
w.config(bg='white')
w.pack()
w.create_oval(*coordsSet, width=3)
w.create_text(*textSet, text=i[3], font=("Helvetica", 16), bg="white")
mainloop()

Tags: text文本示例heretkinterlibcreatefile
1条回答
网友
1楼 · 发布于 2024-06-02 05:51:44

很遗憾,create_text不支持该选项。您可以覆盖一个tkInter文本小部件,它确实支持bg,并在第二个链接中描述。或者,可以使用bbox函数获取文本的边界框,然后在文本下覆盖一个白色矩形,这将产生类似的效果。

第二种方法的示例:

i=w.create_text(*textSet, text=i[3], font=("Helvetica", 16))
r=w.create_rectangle(w.bbox(i),fill="white")
w.tag_lower(r,i)

相关问题 更多 >