напечатать текущее выбранное имя файла - PullRequest
0 голосов
/ 08 марта 2019

Я использую следующую функцию, чтобы установить текст метки в качестве имени файла, который я только что выбрал, но я хочу получить имя файла, который я сейчас выбираю, перед отменой или открытием файла из диалогового окнаЕсть ли способ сделать это с помощью tkinter или любого другого фреймворка / lib вот код

 def pick_csv(self):
     filename = filedialog.askopenfilename()
     filelabel.config(text=filename)
     #filelabel should get the name of the selected file 
     #before closing the dialog 

1 Ответ

1 голос
/ 08 марта 2019

Я не думаю, что вы можете использовать нативный askopenfilename для достижения этой цели.Но вы можете написать свой собственный класс, который наследуется от FileDialog.Это будет выглядеть некрасиво и требует некоторой работы над макетом.

from tkinter import *
from tkinter import filedialog
import os

root = Tk()

a = Label(root,text="Waiting for selection")
a.pack()

class CustomDialog(filedialog.FileDialog):
    def __init__(self,master,path=""):
        filedialog.FileDialog.__init__(self,master)
        self.files.bind("<Button-1>",self.set_label)
        self.selected = None
        self.go(path)

    def set_label(self,*args):
        a.config(text=self.files.get(self.files.curselection()))
        self.selected = os.path.join(self.directory, self.files.get(self.files.curselection()))

    def cancel_command(self, event=None):
        self.selected = None
        self.quit()

def click():
    f = CustomDialog(root)
    if f.selected:
        print (f.selected)

b = Button(root,text="Browse",command=click)
b.pack()

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...