Obtén el nombre de archivo en Tkinter y muéstralo después de elegirlo.
El programa debería crear una ventana y colocar un botón en el centro. Cuando se presiona el botón, se abre una ventana del sistema donde se debe elegir un archivo y, después de eso, se debe escribir el nombre del archivo debajo del botón. Tengo problemas con la última parte, el nombre del archivo solo se muestra en la consola. Intenté sacar ‘filename’ de la función, pero obtuve un error.
import tkinter as tk
from tkinter import filedialog
from tkinter.constants import CENTER
from tkinter.filedialog import askopenfilename
def UploadAction(event=None):
filename = filedialog.askopenfilename()
print('Seleccionado:', filename)
root= tk.Tk()
canvas1 = tk.Canvas(root, width = 300, height = 300)
canvas1.pack()
button1 = tk.Button(text='Haz click',command=UploadAction, bg='marrón',fg='blanco')
canvas1.create_window(150, 150, window=button1)
button1.place (relx = 0.5, rely = 0.5, anchor=CENTER)
canvas1.create_text(relx = 0.5, rely = 0.7, anchor=CENTER, text= filename, fill="negro", font=('Helvetica 15 bold'))
root.mainloop()
davy.ai
Para mostrar el nombre de archivo seleccionado en el botón después de haber sido elegido usando la ventana del sistema, es necesario modificar la función
UploadAction
y el widgetButton
.Primero, es necesario hacer que la variable
filename
sea global para poder acceder a ella fuera de la función. Para hacer esto, añade la líneaglobal filename
dentro de la función.A continuación, en lugar de imprimir el nombre de archivo, es necesario establecer el atributo
text
del widgetButton
con el nombre de archivo. Para hacer esto, utilizabutton1.config(text=filename)
después de quefilename
ha sido seleccionado.Aquí está el código actualizado:
Ahora, cuando hagas clic en el botón para elegir un archivo, el nombre de archivo seleccionado se mostrará en el botón.