【发布时间】:2021-01-09 03:47:36
【问题描述】:
我正在尝试使用 tkinter 模块制作类似幻灯片的程序。这是我所做的:
from tkinter import *
root = Tk()
photo = PhotoImage(file = "image.jpeg")
w = Label(root, image=photo)
w.pack()
def callback(event):
print ("clicked at", event.x, event.y)
##canvas= Canvas(root, width=800, height=500)
canvas= Canvas(root)
canvas.bind("<Button-1>", callback)
canvas.pack()
root.mainloop()
发生了什么:
我正在画布上放一张图片。
我还在检测左键单击并获取坐标(打印在外壳上)
但真正发生了什么:
图片(需要与脚本在同一个文件夹中,顺便说一句)出现在顶部,下面出现一个小空白,我可以单击它(并获取单击的坐标)。如果我点击图片,什么都不会发生。当我点击空白区域时,它只给出空白区域的点击坐标,不将图片算作区域的一部分。如果我放大窗口,它只会在侧面添加惰性空白区域,不会对点击做出反应。
我的问题是,如何让图片成为可点击的部分(也就是获取坐标),并去掉空格
如果你能把图片用窗口放大,那就更好了。
Python 3.7.3,在 MacBook 上。我只有标准库。
【问题讨论】:
-
您将图像放在标签上而不是画布上。
-
您需要将点击绑定到Label本身,使用:
w.bind("<Button-1>", callback)
标签: python macos image tkinter