程序员应该创建一个窗口,在中心放置一个按钮。当按下按钮打开一个需要选择文件的系统窗口,然后在按钮下面写上一个文件名。我在最后一部分遇到了问题,文件名只在控制台上显示,试图将filename
从函数中取出,但我得到了一个错误。
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('Selected:', filename)
root= tk.Tk()
canvas1 = tk.Canvas(root, width = 300, height = 300)
canvas1.pack()
button1 = tk.Button(text='Click Me',command=UploadAction, bg='brown',fg='white')
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="black", font=('Helvetica 15 bold'))
root.mainloop()
发布于 2021-11-22 21:02:21
您似乎正在尝试在画布上显示文本,但有一种使用标签并更改其文本的更简单的方法:
import tkinter as tk
from tkinter.filedialog import askopenfilename
filename = None
def UploadAction(event=None):
filename = askopenfilename()
print('Selected:', filename)
# Change text of label
label1['text'] = filename
root= tk.Tk()
button1 = tk.Button(text='Click Me', command=UploadAction, bg='brown', fg='white')
button1.pack(padx=2, pady=5)
label1 = tk.Label(text='Please choose a file')
label1.pack(padx=2, pady=2)
root.mainloop()
如果只想显示文件名,请执行以下操作:
import tkinter as tk
from tkinter.filedialog import askopenfilename
filename = None
def UploadAction(event=None):
filename = askopenfilename()
# Cut path to the file off
filename = filename.split('/')[len(filename.split('/'))-1]
print('Selected:', filename)
label1['text'] = filename
root= tk.Tk()
button1 = tk.Button(text='Click Me', command=UploadAction, bg='brown', fg='white')
button1.pack(padx=2, pady=5)
label1 = tk.Label(text='Please choose a file')
label1.pack(padx=2, pady=2)
root.mainloop()
https://stackoverflow.com/questions/70063008
复制相似问题