用tkinter 版本8.6 写一个 PhotoImage 点击图片,在该点击位置上会 出现红点
时间: 2023-05-30 18:07:15 浏览: 177
以下是一个示例代码,实现了在点击图片时添加红点的功能:
```python
import tkinter as tk
root = tk.Tk()
# 创建一个PhotoImage对象
img = tk.PhotoImage(file="test.png")
# 创建一个Canvas对象,并将图片添加到其中
canvas = tk.Canvas(root, width=img.width(), height=img.height())
canvas.create_image(0, 0, anchor="nw", image=img)
canvas.pack()
# 定义点击事件处理函数
def on_click(event):
# 在点击位置添加一个红点
canvas.create_oval(event.x-5, event.y-5, event.x+5, event.y+5, fill="red")
# 将点击事件绑定到Canvas上
canvas.bind("<Button-1>", on_click)
root.mainloop()
```
在这个例子中,我们首先创建了一个 PhotoImage 对象,并将其添加到一个 Canvas 中。然后,我们定义了一个 on_click 函数,该函数接受一个事件对象作为参数,其中包含了鼠标点击的位置信息。在该函数中,我们使用 create_oval 方法在点击位置上添加一个红点。最后,我们将点击事件绑定到 Canvas 上,使得在 Canvas 中点击图片时会调用 on_click 函数。
相关问题
用tkinter 版本8.6 写一个 PhotoImage 点击图片,在该点击位置上会 出现红点,红点中显示 已点击数
以下是一个简单的示例代码:
```python
import tkinter as tk
class App(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.pack()
self.clicked_count = 0
self.create_widgets()
def create_widgets(self):
self.canvas = tk.Canvas(self, width=400, height=400)
self.canvas.pack()
self.image = tk.PhotoImage(file="example.gif")
self.canvas.create_image(0, 0, image=self.image, anchor=tk.NW)
self.canvas.bind("<Button-1>", self.on_click)
def on_click(self, event):
x, y = event.x, event.y
self.clicked_count += 1
self.canvas.create_oval(x-5, y-5, x+5, y+5, fill="red")
self.canvas.create_text(x, y, text=str(self.clicked_count))
if __name__ == '__main__':
root = tk.Tk()
app = App(master=root)
app.mainloop()
```
在这个示例中,我们创建了一个 `tkinter.Canvas` 对象,并在其中绘制了一张图片。然后我们绑定了鼠标左键点击事件 `<Button-1>`,当用户点击图片时,会调用 `on_click` 方法。在 `on_click` 方法中,我们获取了鼠标点击的位置 `x` 和 `y`,然后在该位置上绘制了一个红点,并在红点中显示了已经点击的次数。我们使用 `self.clicked_count` 这个属性来记录已经点击的次数。
用tkinter 版本8.6 写一个 点击PhotoImage 显示弹窗,弹窗显示点击坐标
以下是使用Tkinter版本8.6编写的代码,可实现点击PhotoImage弹出窗口并显示点击坐标的功能。
```python
import tkinter as tk
def show_popup(event):
# 获取鼠标点击的坐标
x, y = event.x, event.y
# 创建弹出窗口并设置其大小、标题和内容
popup = tk.Toplevel(root)
popup.geometry('200x100+{}+{}'.format(x + 50, y + 50))
popup.title('Popup')
tk.Label(popup, text="Click coordinates: ({}, {})".format(x, y)).pack()
root = tk.Tk()
# 加载并显示图片
image = tk.PhotoImage(file="image.png")
label = tk.Label(root, image=image)
label.pack()
# 将图片与鼠标点击事件绑定
label.bind("<Button-1>", show_popup)
root.mainloop()
```
说明:
1. 导入Tkinter库,并定义一个`show_popup`函数用于创建弹出窗口并显示鼠标点击坐标。
2. 创建Tkinter窗口对象。
3. 使用`PhotoImage`加载一张图片,然后创建一个Tkinter标签,并将其显示在窗口中。将该标签与鼠标左键点击事件绑定,鼠标点击后将调用`show_popup`函数。
4. 启动Tkinter事件循环。
阅读全文