You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tkinter中创建使用变量时Entry输入值传递给按钮命令为空如何解决

问题原因

Python lambda的默认参数值是函数定义阶段就计算完成的,不是函数运行阶段才计算。你当前的写法在创建按钮时就执行了variable1.get(),这时候用户还没有在输入框填写内容,拿到的自然是空值。你注释掉的测试代码之所以能正常打印,是因为把get()放在了lambda的执行体内,点击按钮的时候才会执行获取操作,自然能拿到用户输入的最新值。

解决方法

把variable1.get()移动到lambda的函数体内部即可,修改后的代码如下:

def menu3A():
    variable1= StringVar()
    ttk.Entry(root, width=7, textvariable=variable1).grid(column=2, row=1)

    ttk.Label(root, text="Enter Filename: ").grid(column=1, row=1)

    # 修正lambda写法,get操作放在点击执行的函数体内
    ttk.Button(root, text="Enter", command= lambda: finance.CSV_Finance_Tool(variable1.get())).grid(column=2, row=13)

改动说明

  • 移除了lambda的默认参数FileName=variable1.get(),避免创建按钮时提前执行获取操作
  • 将variable1.get()直接放在调用CSV_Finance_Tool的参数位置,点击按钮时才会实时获取输入框的当前内容

内容的提问来源于stack exchange,提问作者Rachel Liane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:36:00