标记文本在tkFileDialog.askdirectory()||之后不更新蟒蛇

时间:2015-03-24 16:11:30

标签: python tkinter

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

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()函数并完成其所有内容时,但是当它完成时似乎不会运行按钮上方的代码,结果在标签没有更新的情况下,或者如果我在Button工作之后打印(' Hello')。

抱歉我的英语很差。

由于

1 个答案:

答案 0 :(得分:2)

使用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()
相关问题