gpt4 book ai didi

python - 如何在 tkinter python 中的按钮小部件的命令属性中使用 lambda 表达式调用回调函数

转载 作者:行者123 更新时间:2023-12-01 00:43:27 24 4
gpt4 key购买 nike

我使用 tkinter 创建了一个 gui,在其中创建了一个带有 Toplevel 小部件的新窗口,并将小部件添加到该窗口,例如输入框、标签和按钮小部件。按钮小部件的命令属性使用 lambda 表达式调用回调函数,以便在执行此回调函数之前 gui 不得继续操作。但是,由于一些问题,当我按下按钮小部件时,回调函数没有被调用。

def toplevel_widget(obj):
def suppress():
try:
if obj.fillna_value.get():
fill_na_value_window.withdraw()
else:
raise Empty_na_value_entry_Error("The textbox can't be left empty!!\nFill any data in it.")
except Empty_na_value_entry_Error as e:
msgbox.showerror("Error",e.msg)

fill_na_value_window=tk.Toplevel(obj)
obj.fillna_value=tk.StringVar()
tk.ttk.Label(fill_na_value_window,text="Enter the value to be inserted").grid(row=1,column=0,padx=10,pady=10)
tk.ttk.Entry(fill_na_value_window,textvariable=obj.fillna_value,width=15).grid(row=1,column=1,padx=10,pady=10)
tk.ttk.Button(fill_na_value_window,text="Ok",command=lambda : suppress,width=10).grid(row=2,columnspan=2)


Cleanser_manual.fillna_toplevel_widget(obj)
val=obj.fillna_value.get()
print("Value : ",val) #here **Value : is printed on screen**

这里即使单击按钮后也不会调用suppress()函数

最佳答案

您没有在 lambda 函数内调用 supress,您错过了括号

(..., command=lambda: supress(), ...)

在任何情况下,你根本不需要 lambda,你可以将 supress 函数作为参数传递

(..., command=supress, ...)

关于python - 如何在 tkinter python 中的按钮小部件的命令属性中使用 lambda 表达式调用回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57170932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com