【发布时间】:2018-08-09 11:44:02
【问题描述】:
我正在尝试在空闲时间使用 tkinter 作为 gui 创建汽车配置器。
我已经成功打开了一个 tkinter 框,其中包含用作按钮的图像。
我想要做的是让用户点击一个按钮。我想检查单击了哪个按钮(即如果单击了家庭汽车按钮,我如何检查它是否已被单击)。
我对这个网站进行了研究,我发现的所有解决方案都是用 javascript 或其他语言编写的。
单击按钮后,我希望打开一个仅包含家用车属性的新窗口即家用车可以具有红色外观,但跑车不能具有红色外观全部。
下面是我的代码:
from tkinter import *
import tkinter as tk
def create_window():
window = tk.Toplevel(root)
root = tk.Tk()
familycar = PhotoImage(file = "VW family car.png")
familylabel = Button(root, image=familycar)
familybutton = Button(root, image=familycar, command=create_window)
familybutton.pack()
那么如何检查家庭用车按钮是否被点击?
谢谢
【问题讨论】:
-
只要点击了
familybutton,就会调用您的create_window()函数。在该功能中,您可以在单击familybutton时做任何您想做的事情,创建您想要的窗口。为什么你需要检查它是否在其他时间被点击过? -
你的观点很扎实。我刚刚尝试了代码'window.title("Exterior colour"),当我点击'familybutton'时,新窗口打开,标题为'exterior colour'。我想我现在知道我需要做什么了。谢谢
-
不客气。我可以看到需要检查的感觉从何而来,但基本上 Tkinter 在其主循环中为您完成了这项工作。这个主循环基本上检查是否有一个事件,当这个事件发生时执行它被告知要做的事情,更新窗口,重复。因此,您所要做的就是将您的功能与按钮按下事件联系起来,您可以使用
command=执行此操作。请记住,无法从按钮按下功能返回值。因此,人们倾向于将 Tkinter 应用程序放在类中,正如 in this answer 所解释的那样。