程式應該創建一個視窗,在中心放置一個按鈕。當按下一個按鈕時,會打開一個系統視窗,需要選擇一個檔案,然后在按鈕下寫一個檔案名。最后一部分出現問題,檔案名僅顯示在控制臺上,試圖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()
uj5u.com熱心網友回復:
您似乎正在嘗試在畫布上顯示文本,但有一種更簡單的方法使用標簽并更改其文本:
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://www.uj5u.com/ruanti/365155.html
