首页 > 解决方案 > 正确地将带有参数的函数分配给 Tkinter 中的按钮

问题描述

我有两个文件:

函数.py

import tkinter as tk

class funcs():
    def func1(entry):
        entry.delete(0, tk.END)

主文件

import tkinter as tk
import functions as f

root = tk.Tk()

entrybox = tk.Entry(master=root).grid()
button = tk.Button(master=root, command=f.funcs.func1(entrybox)).grid()

root.mainloop()

main.py中,我已将带有参数entrybox的命令func1分配给小部件按钮。我的意图是让entry参数代表我想要操作的条目小部件。

这行代码坏了:

button = tk.Button(master=root, command=f.funcs.func1(entrybox)).grid()

问题是当我运行程序时,该函数被立即调用并且没有被分配给按钮。

我正在寻找一种方法来将带有参数的函数分配给tkinter 中的按钮。

标签: pythonpython-3.xtkinter

解决方案


您可以使用匿名函数:

tk.Button(
    master=root,
    command=lambda: f.funcs.func1(entrybox)
)

推荐阅读