tkFileDialog.askdirectory() || 后标签文本未更新Python

Label text not updating after tkFileDialog.askdirectory() || Python

我想请求一个目录并将路径放在标签上,这是我的代码:

from Tkinter import *
import tkFileDialog, os

def demana_directori():
    global items, directori
    directori=tkFileDialog.askdirectory(title='Escolleix directori')
    imdr.configure(textvariable=directori)
    items=os.listdir(directori)
    for item in items:
        llista1.insert(END,item)
    llista1.insert(END,"1")
    llista2.insert(END,"2")


##MAIN
finestra=Tk()
finestra.title("Creació del Fitxer Comprimit")
finestra.minsize('0','0')


f=Frame(finestra)
f.pack()

esq=Frame(finestra)
drt=Frame(finestra)

esqtp=Frame(esq)
esq.pack(side=LEFT,fill=BOTH)
esqtp.pack(side=TOP,fill=X)

esqtp1=Frame(esqtp)
esqtp2=Frame(esqtp)

directori=StringVar()
items=['']

dr=Button(esqtp1,text='Escollir directori treball',command=demana_directori)
dr.pack(side=LEFT)
imdr=Label(esqtp1,width=30,relief=SUNKEN,textvariable=directori)
imdr.pack(side=LEFT,fill=X)
finestra.mainloop()

核心问题是当我按下 dr 按钮时调用 demana_directori() 函数并正确执行所有内容,但是当它完成时似乎不会 运行 上面的代码按钮,导致标签不更新,或者如果我在按钮后放置 print('Hello') 也不起作用。

抱歉我的英语不好。

谢谢

使用 StingVar() 时,您需要调用方法 set() 来更改其值:

from Tkinter import *
import tkFileDialog, os

def demana_directori():
    global items, directori
    d = tkFileDialog.askdirectory(title='Escolleix directori')
    directori.set(d)

##MAIN
finestra=Tk()
finestra.title("cc")
finestra.minsize('0','0')


f=Frame(finestra)
f.pack()

esq=Frame(finestra)
drt=Frame(finestra)

esqtp=Frame(esq)
esq.pack(side=LEFT,fill=BOTH)
esqtp.pack(side=TOP,fill=X)

esqtp1=Frame(esqtp)
esqtp2=Frame(esqtp)

esqtp2.pack()
esqtp1.pack()

directori=StringVar()
items=['']

dr=Button(esqtp1,text='Escollir directori treball',command=demana_directori)
dr.pack(side=LEFT)
imdr=Label(esqtp1,width=30,relief=SUNKEN,textvariable=directori)
imdr.pack(side=LEFT,fill=X)
finestra.mainloop()