Я добавил изображение png с прозрачными областями (альфа = 0) на холст tkinter (см. Минимальный пример ниже). Щелчок мыши распознается при нажатии где-нибудь в прямоугольнике, который содержит изображение tkinter.
Как настроить функцию так, чтобы любое связывание мыши (щелчок, перемещение и т. Д. c.) Вызывалось только тогда, когда мышь расположена на пикселях с ненулевыми альфа-значениями изображения?
Пример смокинга (linux талисман):
try:
# Tkinter for Python 2.xx
import Tkinter as tk
except ImportError:
# Tkinter for Python 3.xx
import tkinter as tk
image_path = "./tux.png"
class Application(tk.Frame):
def __init__(self, master):
self.master = master
tk.Frame.__init__(self, master)
self.canvas = tk.Canvas(self, width=600, height=600)
self.canvas.pack(fill="both", expand=True)
# create an example image
self.tk_image = tk.PhotoImage(file=image_path)
self.image_obj= self.canvas.create_image(200, 200, anchor = 'center',
image=self.tk_image)
self.canvas.tag_bind(self.image_obj, '<Button-1>', self.clicked)
def clicked(self, event):
print("I am tux.")
def main():
app_win = tk.Tk()
app = Application(app_win).pack(fill='both', expand=True)
app_win.mainloop()
if __name__ == '__main__':
main()