如何在GUI上显示当前选定的文件夹?

时间:2018-02-12 06:57:59

标签: python user-interface tkinter directory

美好的一天,

我正在使用tkinter filedialog来选择一个文件夹,并在GUI的条目中显示它?

到目前为止,这是我的代码:

import os
from tkinter import *
from tkinter import filedialog

dir_path = ''

def inPut():
    indir = filedialog.askdirectory(parent=root,initialdir="/",title='Input Folder')
    indir = str(indir)
    dir_path = os.path.dirname(indir)
    entry.delete(0, END)
    entry.insert(0, dir_path)
    return dir_path

root = Tk()
root.geometry("640x240")
root.title("Settings")

frametop = Frame(root)
framebottom = Frame(root)
frameright = Frame(framebottom)

text = Label(frametop, text="Input Folder").grid(row=5, column=2)
entry = Entry(frametop, width=50, text=dir_path)
entry.grid(row=5,column=4,padx=2,pady=2,sticky='we',columnspan=20)

ButtonA = Button(frametop, text="Change", command=inPut).grid(row=5, column=28)
ButtonB = Button(frameright, text="OK").grid(row=5, column=20, padx=10)

frametop.pack(side=TOP, fill=BOTH, expand=1)
framebottom.pack(side=BOTTOM, fill=BOTH, expand=1)
frameright.pack(side=RIGHT)

root.mainloop()

目前,它只返回'D:/'

  1. 如何让它返回条目中的完整路径?

  2. 如何将“/”更改为“\”

  3. 下次运行应用时,如何让应用将文件夹记为初始目录?

  4. 请帮忙!

1 个答案:

答案 0 :(得分:1)

要将其写入您的标签,您需要引用它。

多种可能性:

  1. 为您的GUI创建一个类,并使用showdir或绑定到它的textvariable作为实例变量
  2. 传递对您的通话的引用,以便showdir可用
  3. 全球showdir
  4. 为什么这个订单?最不可取的。

    如果您不知道如何写入或读取文件,请在开始创建GUI之前先从python教程开始。如果你不知道为什么要像你那样做某些步骤,那么“让别人写的代码令人困惑”就没有意义了。它就像在不知道什么是交通的情况下驾驶汽车一样。

    关于编辑

    您的代码现在可以正常工作,因为您不再直接访问该属性,因此您不会立即使用写入权限。

    • return dir_path已完全过时。
    • 根据documentation父目录路径中的定义,您没有获得os.path.dirname(indir)返回的文件夹。如果您使用文件而不是目录,则dirname就可以了,只要您使用目录,请使用os.path.abspath
    os.path.dirname(路径)¶

    返回路径名路径的目录名称。这是通过将路径传递给函数split()返回的对中的第一个元素。