在Tkinter中单击图像时如何调用函数?

时间:2019-11-06 20:25:27

标签: python python-3.x tkinter toplevel

我知道通过使用command来使用Tkinter按钮调用函数很容易,但是它与图像的工作方式不同。我相信我的问题很简单,如何单击图片即可调用函数?

这是代码。我想单击picture,这将调用make_newwindow函数。

from tkinter import *
import tkinter as tk

def make_newwindow():
    global newwindow
    root.withdraw()
    newwindow = tk.Toplevel()
    newwindow.title('Nível da grama região 2')
    newwindow.geometry('580x520')

root = tk.Tk()
root.title('Nível da grama região 1')
root.geometry("580x520")
picture = PhotoImage(file="picture.png")
label0 = Label(root, image=picture, borderwidth=0, highlightthickness=0)
label0.place(x=62, y=205)


root.mainloop()

2 个答案:

答案 0 :(得分:1)

在我看来,最简单的方法是将图像附加到Button而不是Label小部件,因为您要做的就是指定一个{{1} }参数引用您要在单击时调用的函数。

这是我的意思:

command=

如果出于某种原因确实要使用import tkinter as tk def make_newwindow(): global newwindow raiz.withdraw() newwindow = tk.Toplevel() newwindow.title('Nível da grama região 2') newwindow.geometry('580x520') raiz = tk.Tk() raiz.title('Nível da grama região 1') raiz.geometry("580x520") picture = tk.PhotoImage(file="picure.png") btn0 = tk.Button(raiz, image=picture, borderwidth=0, highlightthickness=0, command=make_newwindow) btn0.place(x=62, y=205) raiz.mainloop() ,则可以调用通用的bind()小部件方法以将函数附加到鼠标按钮上1单击events

要执行此操作,请更改上面的代码,以便它创建一个Label(就像您的代码一样),还可以如图所示调用Label。请注意如何通过lambda表达式动态创建回调函数。这是必需的,因为您的bind()不接受任何参数。但是,make_newwindow()事件处理程序回调函数都传递了一个tkinter参数(请参见Events and Bindings)。由于这里不需要使用该参数,因此该参数将被忽略,并被命名为event(Python的约定)。

_

答案 1 :(得分:0)

这怎么样? 这是有效的完整代码

import tkinter as tk
from tkinter import *


def make_newwindow(data):
    global newwindow
    root.withdraw()
    newwindow = tk.Toplevel()
    newwindow.title('Nível da grama região 2')
    newwindow.geometry('580x520')


root = tk.Tk()
root.title('Nível da grama região 1')
root.geometry("580x520")
picture = PhotoImage(file="Capture001.png")
label0 = Label(root, image=picture, borderwidth=0, highlightthickness=0)
label0.place(x=62, y=205)


label0.pack()
label0.bind('<Button-1>', func=make_newwindow)


root.mainloop()

data是有关所发生偶数的信息