python按钮调用函数_如何在Button的command中传递参数?

tkinter是Python官方自带的GUI框架,简单好用,其中最常用的恐怕就是Button控件了。这个控件就是在GUI上显示一个按钮,用户点击后,除法command参数所对应的函数。不过,这里有一个很多人都在咨询的问题,如何在Button控件的command中传递参数?

错误的传参写法

下面这段代码,希望实现的功能,是点击clickme按钮后,能够将tstr变量中的字符串在Label中显示出来。

import tkinter as tk

def bn_cmd(str=None):

if str is not None:

lb.config(text=str)

root = tk.Tk()

root.geometry('200x100')

lb = tk.Label(root, text='12345')

lb.grid()

tstr = 'I\'m from Button command'

bn = tk.Button(root, text='clickme', command=bn_cmd(tstr))

bn.grid()

root.mainloop()

请看高亮的那一行,Button的command参数,等于bn_cmd(tstr),这种写法是错的!

这种写法,在这段代码载入的时候,bn_cmd函数就被执行了,Label的显示已经被更新,而command这个参数,实际上值为None,因为bn_cmd函数执行没有返回值,在Python中,等同于return None。待这段程序运行起来,点击GUI界面中的clickme按钮,实际上不会有任何效果!!

正确的传参方法

正确的在Button的command中传递参数的方法,是使用lambda匿名函数。代码修改成下面这样,实际上只修改了高亮的那一行:

import tkinter as tk

def bn_cmd(str=None):

if str is not None:

lb.config(text=str)

root = tk.Tk()

root.geometry('200x100')

lb = tk.Label(root, text='12345')

lb.grid()

tstr = 'I\'m from Button command'

bn = tk.Button(root, text='clickme', command=lambda:bn_cmd(tstr))

bn.grid()

root.mainloop()

这样的写法,就实现了界面初始显示12345,点击clickme按钮后,变成tstr变量的内容,而tstr变量,是通过参数的方式传递近bn_cmd函数的。

这种写法,command指向一个匿名函数,这个匿名函数就是调用bn_cmd函数,并且制定了tstr这个参数。这种方式就实现了Button控件command中传递参数。

就不截图了,新建一个文件,copy上面这段代码,用python执行,就能看到效果command传参的效果。

-- EOF --

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Python ,可以通过创建按钮对象并给它绑定一个函数来实现按钮调用函数的功能。 以下是一个简单的示例代码,演示如何在 tkinter 库创建一个按钮和一个函数: ```python import tkinter as tk # 创建窗口对象 window = tk.Tk() # 定义按钮点击事件函数 def button_click(): print("Button clicked!") # 创建按钮对象 button = tk.Button(window, text="Click me!", command=button_click) # 显示按钮 button.pack() # 运行窗口 window.mainloop() ``` 在上面的代码,`tk.Button` 函数用于创建一个按钮对象,其 `text` 参数用于设置按钮上显示的文本,`command` 参数则设置按钮被点击时所触发的函数。在本例,我们将 `command` 参数设置为 `button_click` 函数,这意味着当用户点击按钮时,函数 `button_click` 将被调用。 注意,`button_click` 函数必须在按钮对象之前定义,否则会出现“未定义”错误。 ### 回答2: Python按钮调用函数的方法有很多种。其一个常见的方法是使用Python的GUI库,如Tkinter、PyQt或wxPython来创建按钮并将按钮绑定到相应的函数上。 首先,需要导入相应的GUI库。以Tkinter为例: ```python import tkinter as tk ``` 然后,可以创建一个窗口,并在窗口添加一个按钮。需要指定按钮的文本和所绑定的函数。 ```python def button_clicked(): print("按钮被点击了!") window = tk.Tk() button = tk.Button(window, text="点击我", command=button_clicked) button.pack() window.mainloop() ``` 在上述代码,我们定义了一个名为`button_clicked`的函数,用于处理按钮被点击的事件。在函数,我们打印出一条提示信息。然后,我们创建了一个窗口,并在窗口创建了一个文本为"点击我"的按钮,将按钮与`button_clicked`函数绑定。最后,通过调用`mainloop`方法来显示窗口。 当我们运行上述代码并点击按钮时,控制台将会输出"按钮被点击了!"。 总结来说,使用Python进行按钮调用函数可以通过GUI库来实现。首先,需要导入合适的GUI库;然后,创建按钮并将按钮与相应的函数绑定。当按钮被点击时,对应的函数将会被调用并执行相应的操作。 ### 回答3: Python按钮调用函数可以通过GUI库(如tkinter)实现。下面是一个简单的例子来说明: ```python import tkinter as tk # 创建按钮函数 def button_clicked(): print("按钮被点击了!") # 创建窗口 window = tk.Tk() # 创建按钮 button = tk.Button(window, text="点击按钮", command=button_clicked) button.pack() # 运行窗口 window.mainloop() ``` 在上面的例子,首先导入了`tkinter`模块,然后定义了一个`button_clicked()`函数,用于在按钮被点击时执行的操作。接着创建了一个窗口`window`,然后创建一个按钮`button`,并设置其文本为"点击按钮",并将按钮的`command`属性设置为`button_clicked`函数。最后运行窗口。 当按钮被点击时,`button_clicked()`函数会被调用,并执行其的操作,这里简单地打印出一条信息。 这是一个简单的展示了按钮调用函数的例子,实际上,可以根据需要在`button_clicked()`函数加入更多的操作,来实现自己的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值