【问题标题】:Annotate an image in tkinter canvas window dynamically动态注释 tkinter 画布窗口中的图像
【发布时间】:2021-02-16 14:39:04
【问题描述】:

所以我在我的 Tkinter 窗口中使用画布显示图像。现在我有一个计算某些参数的按钮,我希望它在图像上动态显示。所以基本上每次计算后,注释都应该更改为新参数。

例如考虑到我正在计算列尺寸,并且在每次计算之后,我必须显示标记在我的 Tkinter 窗口中的列图像的各个侧面上的尺寸。

那么是否可以动态注释图像,如果不能,是否有其他方法来执行此任务?

【问题讨论】:

  • 您是否尝试将图像放在画布上然后在其上创建注释?如果你能做到这一点并且你想更新注释,只需删除精灵并创建新的注释。

标签: tkinter tkinter-canvas tkinter-layout


【解决方案1】:

看看下面的例子

from tkinter import *
from PIL import Image,ImageTk
import random

def annotate():
    annotation=str(random.randint(1000,9999))
    canvas.itemconfig(annotation_text,text=annotation)

root=Tk()

canvas=Canvas(root)
canvas.pack(fill='both',expand=True)

image=Image.open('example.png')
image=ImageTk.PhotoImage(image.resize((300,300)))
canvas.create_image(150,150,image=image)

annotation_text=canvas.create_text(50,50,text='')

button=Button(root,text='Annotate',command=annotate)
button.pack()

root.mainloop()

您可以使用itemconfig 方法来配置文本。上面的示例将在单击按钮时使用随机整数注释(50,50) 处的图像。

【讨论】:

  • 感谢您的帮助,顺便说一句,我们有什么方法可以实时执行此操作,例如在我输入值的同时,无需按下按钮?
  • 有多种方法可以做到这一点,我认为最简单的方法是使用widget.bind('<Key>',update),其中update 是获取值并更新项目的函数。
猜你喜欢
  • 2017-04-08
  • 2021-12-27
  • 2021-07-14
  • 2014-05-15
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
相关资源
最近更新 更多