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

And*_*iaz 4 python tkinter

我正在使用 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()
Run Code Online (Sandbox Code Playgroud)

有什么建议么?

pro*_*bat 8

您需要创建一个 tk 标签小部件并向其中添加文本。那么你需要使用 tk label 选项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()
Run Code Online (Sandbox Code Playgroud)