使用Python Tkinter在图像上创建文本

4

我正在使用Python Tkinter在Sublime上创建Arduino接口。

我需要在图像上显示文本,位于屏幕中央(512, 200)。我不知道如何使用这个库实现它。

import Tkinter as tk
from Tkinter import *
root = tk.Tk()
root.geometry("1024x574")
root.title("window")
photo = tk.PhotoImage(file= r"hi.gif")
cv = tk.Canvas()
cv.pack(side='top', fill='both', expand='yes')
cv.create_image(0, 0, image=photo, anchor='nw')
text=['my text']
root.mainloop()

有什么建议吗?

你尝试使用画布的 create_text 命令了吗? - Bryan Oakley
我刚刚做了,而且它起作用了!谢谢你。 - Andrea Diaz
1个回答

8
你需要创建一个tk标签小部件并将文本添加到其中。然后你需要使用tk标签选项compound=
直接引用自http://effbot.org/tkinterbook/label.htm:
"compound=
控制标签中如何组合文本和图像。默认情况下,如果给出图像或位图,则绘制该图像而不是文本。如果将此选项设置为CENTER,则在图像上方绘制文本。如果将此选项设置为BOTTOM、LEFT、RIGHT或TOP之一,则在文本旁边绘制图像(使用BOTTOM在文本下面绘制图像等)。默认值为NONE。"
以下是一个最小但可以实现你要求的工作示例:
import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()

image = Image.open('hi.gif')
tk_image = ImageTk.PhotoImage(image)

label = tk.Label(root, text='Some Plain Text', image=tk_image, compound='center')
label.pack()

root.mainloop()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接