当前位置: 首页 > 面试题库 >

Python-如何在Tkinter中将参数传递给Button命令?

危文乐
2023-03-14
问题内容

假设我Button在Python中使用Tkinter进行了以下操作:

import Tkinter as Tk
win = Tk.Toplevel()
frame = Tk.Frame(master=win).grid(row=1, column=1)
button = Tk.Button(master=frame, text='press', command=action)

action当我按下按钮时会调用该方法,但是如果我想向该方法传递一些参数action呢?

我尝试使用以下代码:

button = Tk.Button(master=frame, text='press', command=action(someNumber))

这只是立即调用该方法,而按该按钮则无济于事。


问题答案:

我个人更喜欢lambdas在这种情况下使用,因为imo更加简单明了,并且如果你无法控制被调用的方法,也不会强迫你编写很多包装方法,但这当然是一个问题。

这就是使用lambda的方式(请注意,功能模块中还存在一些currying的实现,因此你也可以使用它):

button = Tk.Button(master=frame, text='press', command= lambda: action(someNumber))


 类似资料:
  • 问题内容: 我需要稍后再运行一个mail.php文件,而不是让用户在提交register.php时等待发送验证电子邮件。 因此,我选择在1分钟后使用 at 命令在命令行中运行mail.php( 在register.php 中 调用 ): 但是,当我处于at命令的交互模式时,我只能将参数发送到该php文件。 由于我希望这是自动的,因此我需要在运行时使用shell脚本: 但是我找不到传递 {email

  • 问题内容: 我有2个按钮,分别名为“ ButtonA”,“ ButtonB”。如果要单击任何按钮,我希望程序打印“ hello,ButtonA”和“hello,ButtonB”。我的代码如下: 当我单击ButtonA时,会发生错误。 我理解此错误,但是如何将ButtonA的文本传递给lambda? 问题答案: 这应该工作: 有关更多信息,请查看Tkinter回调

  • 我使用atom-run(https://github.com/lsegal/atom-runner)运行内联我的nodejs程序。 使用此插件时,是否可以传递命令行参数?点击Alt R启动节点,但由于我的脚本需要参数,它失败了。 在运行之前,如何传递命令行参数?

  • 问题内容: 我是Python和Eclipse的新手,在理解如何将命令行参数传递给在Eclipse(Pydev)中运行的脚本时遇到一些困难。 以下链接说明了如何将命令行参数传递给python脚本。 要将命令行参数传递给模块(来自上面链接的代码), 我需要输入python控制台 要么 如何在Eclipse(Pydev)中将相同的参数传递给Python脚本? 谢谢 ! 问题答案: 如果您希望程序以交互方

  • 问题内容: 我有一个名为的python文件,该python文件需要两个命令行参数:,Dockerfile如下所示: 如何通过这两个命令行参数,并以?我试过了但是没用。 问题答案: 您不能按预期使用和,因为它们是的选项。 启动一个终端。 将Docker容器作为守护程序启动。 要在Dockerfile中设置环境变量,请使用命令。 请参阅Dockerfile参考。 另一种选择是通过以下方式传递环境变量:

  • 问题内容: 假设我有两个输入框,分别具有对应的ng-model作为fname和lname。如果我将http请求称为: 它会调用URL: 我在后端(python)遇到的错误是: 这些参数不以字符串形式发送吗?如果没有,该如何解决? 问题答案: 这是您的操作方式: Angular负责对参数进行编码。 Maxim Shoustin的答案不起作用(这不是有效的JavaScript文字),而JeyTheva