创建时执行按钮命令
在提供的代码中,创建了一个 Button 小部件,其命令选项设置为调用带有参数的函数,导致立即执行命令。要解决这个问题,了解 Tkinter 中事件处理的工作原理至关重要。
在 Tkinter 中,事件处理通过将函数与事件(例如,按钮单击)相关联来工作。当事件发生时,Tkinter 调用关联的函数。然而,在提供的代码中,命令选项包含调用功能按钮('hey')的结果,而不是对函数本身的引用。
因此,代码本质上与以下内容相同:
result = button('hey') b = Button(admin, text='as', command=result)
因此,该命令在创建 Button 时立即执行,打印 'hey' 和 'het',并且当单击该按钮时,没有任何反应,因为该命令已被执行。
要纠正此问题,命令选项应包含对该函数的引用,而不是其调用的结果。例如:
b = Button(admin, text='as', command=button)
或者,如果命令需要参数,则可以使用 lambda 函数,它允许内联函数定义。例如:
b = Button(admin, text='as', command=lambda: button('hey'))
这将创建一个匿名函数,在调用时会调用按钮('hey'),提供所需的功能。
以上是为什么我的 Tkinter 按钮在创建后立即执行其命令?的详细内容。更多信息请关注PHP中文网其他相关文章!