Python Tkinter 文本背景

标签 python text background tkinter

我正在尝试为 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()

最佳答案

不幸的是 create_text 不支持该选项。您可以覆盖支持 bg 并在第二个链接中描述的 tkInter 文本小部件。或者,您可以使用 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)

关于Python Tkinter 文本背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9408195/

相关文章:

python - Cython:C 级 int 与 PyLongObjects

jquery - 当文本太长时,在文本框中使用 jQuery 模拟 "typing text"

android - Android 4.0 中的后台视频录制

css - 背景图像不会调整大小

iphone - AVAudioPlayer 后台任务不起作用 [iOS]

python - lambda 函数闭包捕获什么?

python - 上传文件的 Django 自定义管理方法

javascript - 在 Python 或 JavaScript 中实现 C 预处理器?

Java解析文本文件到数组

javascript - 如何在html中查找选定的文本