Fixing error: 'StringVar' object not callable in Python

Fixing error: 'StringVar' object not callable in Python

我目前正在尝试刷新 python 中输入字段中的内容,下面是我的代码:

from tkinter.filedialog import *

from tkinter import *
master = Tk()

menu = Menu(master)
master.config(menu=menu)

Label(master, text='Camera File:').grid(row=0, column=1)

def carddir_get():
    temp_carddir = askdirectory(parent=master, title='Please select a directory')
    print(temp_carddir)
    cdg.delete(0,END)
    cdg.insert(0,temp_carddir)

temp_carddir = StringVar()
temp_carddir.set("/path/to/card/")
temp_carddir.trace("w", temp_carddir)

cdg = Entry(master, textvariable=temp_carddir)

cdg.grid(row=0,column=2)

Button(master, text='Browse', command=carddir_get).grid(row=0, column=3)

mainloop()`

正如我在评论中所说,我不使用 Tkinter,但似乎 trace 期望将回调作为其第二个参数。

我替换了:

temp_carddir.trace("w", temp_carddir)

与:

temp_carddir.trace("w", lambda nm, idx, mode: print('nm={}, idx={}, mode={}'.format( nm, idx, mode)))

打开和关闭对话框后,我现在在控制台中看到以下输出而不是错误:

nm=PY_VAR0, idx=, mode=w

希望这对你来说比对我更有意义,你可以从这里继续。