2016-11-14 90 views
-1

我試圖得到一個文件路徑與askopenfilename()函數的文件路徑,但我不能代替我的條目(myEntry)與選擇問與Tkinter的蟒蛇

我如何處理這個文件路徑的價值?

我的代碼:

from tkinter import * 
from tkinter import filedialog 

class Window(Tk): 
    def __init__ (self,inTitle="FUNCT"): 
     Tk.__init__(self) 
     self.title(inTitle) 
     self.geometry("500x300") 
     self.__myEntry = StringVar(self,"E:/TEST.txt") 
     pathfile = Entry(self,textvariable = self.__myEntry, width =80) 
     pathfile.grid() 
     bouton1 = Button(self, text = "Parcourir", command =self.loadfile) 
     bouton1.grid() 

    def loadfile(inSelf): 
     global filename 
     inSelf.filename = filedialog.askopenfilename() 
     return inSelf.filename 

myWindow = Window() 
myWindow.mainloop() 

回答

0

代替返回filename的,您可以直接更改按鈕的回調內部的StringVar值。

def loadfile(self): 
    self.__myEntry.set(filedialog.askopenfilename()) 

或由布賴恩·奧克利在意見建議,可以徹底刪除StringVar和直接更新Entry

class Window(Tk): 
    def __init__ (self,inTitle="FUNCT"): 
     Tk.__init__(self) 
     self.title(inTitle) 
     self.geometry("500x300") 
     self.pathfile = Entry(self, width =80) 
     self.pathfile.grid() 
     self.pathfile.insert(0, "E:/TEST.txt") #inserts default filename 
     bouton1 = Button(self, text = "Parcourir", command =self.loadfile) 
     bouton1.grid() 

    def loadfile(self): 
     filename = filedialog.askopenfilename() 
     self.pathfile.delete(0,END) #removes current text 
     self.pathfile.insert(0,filename) #insert the filename 
+0

您還可以擺脫'StringVar'並直接更新條目窗口小部件。 –

+0

@BryanOakley當然。編輯該替代方案也是如此。感謝您的建議。 :) – Lafexlos

+0

這種方法是我的問題的一個很好的解決方案 – BORUSSEN11