是否可以在python中保存目录和文件路径?

时间:2019-11-29 08:05:57

标签: python user-interface tkinter

我是python新手,我想创建一个可以存储目录和文件路径的GUI。我感到困惑,因为代码仅存储一个变量。

import tkinter
import tkinter.filedialog

def OnDirectoryButtonClick(self):
    self.entryVariable.set( tkinter.filedialog.askdirectory() )
    self.entry.focus_set()
    self.entry.selection_range(0, tkinter.END)

def OnFileButtonClick(self):
    self.entryVariable.set( tkinter.filedialog.askopenfilename() )
    self.entry.focus_set()
    self.entry.selection_range(0, tkinter.END)

root = tkinter.Tk()
frame=tkinter.Frame(root)

firstButton = tkinter.Button(frame, text ="Choose", command=lambda:
OnDirectoryButtonClick(root))
firstButton.grid(column=1,row=1)
root.entryVariable = tkinter.StringVar()
root.entry = tkinter.Entry(frame,textvariable=root.entryVariable)
root.entry.grid(column=0,row=1)

secondButton = tkinter.Button(frame, text ="Choose", command=lambda: OnFileButtonClick(root))
secondButton.grid(column=1,row=3)
root.entryVariable = tkinter.StringVar()
root.entry = tkinter.Entry(frame,textvariable=root.entryVariable)
root.entry.grid(column=0,row=3)**

frame.pack(pady=9)

root.mainloop()

1 个答案:

答案 0 :(得分:2)

您在两个字段中都使用了相同的变量。使用此代码可以正常工作。

import tkinter
import tkinter.filedialog

def OnDirectoryButtonClick(self):
    self.entryVariable_dir.set( tkinter.filedialog.askdirectory() )
    self.entry_dir.focus_set()
    self.entry_dir.selection_range(0, tkinter.END)

def OnFileButtonClick(self):
    self.entryVariable_file.set( tkinter.filedialog.askopenfilename() )
    self.entry_file.focus_set()
    self.entry_file.selection_range(0, tkinter.END)

root = tkinter.Tk()
frame=tkinter.Frame(root)

firstButton = tkinter.Button(frame, text ="Choose", command=lambda:
OnDirectoryButtonClick(root))
firstButton.grid(column=1,row=1)
root.entryVariable_dir = tkinter.StringVar()
root.entry_dir = tkinter.Entry(frame,textvariable=root.entryVariable_dir)
root.entry_dir.grid(column=0,row=1)

secondButton = tkinter.Button(frame, text ="Choose", command=lambda: 
OnFileButtonClick(root))
secondButton.grid(column=1,row=3)
root.entryVariable_file = tkinter.StringVar()
root.entry_file = tkinter.Entry(frame,textvariable=root.entryVariable_file)
root.entry_file.grid(column=0,row=3)

frame.pack(pady=9)

root.mainloop()