【问题标题】:how to check if button is clicked on tkinter如何检查是否在 tkinter 上单击了按钮
【发布时间】: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 所解释的那样。

标签: python tkinter


【解决方案1】:

使用布尔标志。

在代码开头附近将isClicked 定义为False,然后在create_window() 函数中将isClicked 设置为True

这样,您代码中的其他函数和变量可以查看按钮是否被点击 (if isClicked)。

【讨论】:

  • isClicked 是我必须定义的变量吗?
  • @theoneandonylndy 是的 :)
  • 好的,那我试试。谢谢你:)
  • 我可以使用 if 语句来检查它是否被点击了吗?
  • @theoneandonylndy 是的
【解决方案2】:

不确定你问了什么,你想禁用它还是在另一个例程中检查它的状态? 或者只是为了计算它被点击的次数,

为了做到这一点,简单的解决方案是添加一个将在 create_window 方法内更新的通用变量(通用是因为您希望允许从其他地方访问)。

【讨论】:

  • 一般来说,如果用户点击了家用车按钮,我想检查它是否被点击,所以我可以添加其他制作家用车的属性,即合金颜色, 内饰颜色。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多