如何将文件位置存储到条目窗口小部件中--Tkinter

时间:2018-01-01 21:47:14

标签: python tkinter grid

我在使用Tkinter将文件位置存储到我的脚本的条目小部件中时遇到了麻烦:

到目前为止,我能够使浏览按钮完美运行,但是,我无法确定我创建的变量值parent.filename将文件位置存储到条目小部件中,如下图所示:

enter image description here

我的脚本如下:

from Tkinter import *
import ttk
from PIL import ImageTk, Image
import os
import Tkinter, Tkconstants, tkFileDialog

class arquivos:

    def __init__(self, parent):     

       parent.title('TEXT MINING - HMB QA')

       self.gif1 = PhotoImage(file = 'tteste.gif')
       label1 = Label(image=self.gif1)
       label1.image = self.gif1 
       label1.grid(row = 0, column = 0, rowspan=13, sticky=NW)

       Label(parent, text='File URL:').grid(row=0, column=1, sticky='e')
       self.v1=Entry(parent, width=90)
       self.v1.grid(row=0, column=2, sticky='we',columnspan=8)


       self.button3 = Button(parent, text = "Browse", command 
       =self.loadtemplate, width = 10, height=1)        
       self.button3.grid(row=0, column=10, columnspan=2, sticky='w')

       Label(parent, text='Filter RO List:').grid(row=1, column=1, 
       sticky='e')
       self.v2=Radiobutton(parent, text="YES", value=1)
       self.v2.grid(row=1,column=2, columnspan=1, sticky='w')

parent=Tk()
arquivos(parent)
parent.mainloop(

关于函数loadtemplate,遵循以下代码:

 def loadtemplate(self): 

    parent.filename = StringVar()        
    parent.filename = tkFileDialog.askopenfilename(initialdir = "/",title 
    = "Select file",filetypes = (("jpeg files","*.jpg"),("all 
    files","*.*")))
    print parent.filename        
    self.v20 = Entry(parent, textvariable=parent.filename, width=90)
    self.v20.grid(row=0,column=2, sticky='we',columnspan=8)  

当我点击Browse按钮时弹出一个框,我可以选择文件目录: 分配用于存储文件位置的变量parent.filename也有效,但是,我无法将变量值存储到条目窗口小部件self.v1

任何帮助都将受到高度赞赏

1 个答案:

答案 0 :(得分:2)

您正在使用目标字符串覆盖StringVar上的parent.filename实例。使用set方法设置变量类的值 parent.filename中的对象。

替换:

parent.filename = tkFileDialog.askopenfilename(initialdir = "/",title 
    = "Select file",filetypes = (("jpeg files","*.jpg"),("all 
    files","*.*")))

使用:

parent.filename.set(tkFileDialog.askopenfilename(initialdir = "/",title 
    = "Select file",filetypes = (("jpeg files","*.jpg"),("all 
    files","*.*"))))