本帖最后由 Daniel_Zhang 于 2021-2-3 17:00 编辑
不知道有没有解决你的问题嗷,目前我这边测试的是点击了 Run 以后,就可以直接 print 地址了
我直接在按下按钮选择文件的那个 function 里面 append 文件的地址到 list 里
import tkinter as tk
from tkinter.filedialog import askopenfilename
path_list = []
class Files():
def __init__(self, i):
self.etyText = tk.StringVar()
self.name = f'name{i}'
def btn_action(self):
sPath = askopenfilename()
if len(sPath) > 0:
self.etyText.set(sPath)
path_list.append(sPath)
if __name__ == '__main__':
root = tk.Tk()
root.title('test')
root.geometry('500x200+500+200')
iCount = 3
for i in range(1, iCount + 1):
file = Files(i) # 實例化類
tk.Label(root, text='lb' + str(i)).grid(row=i, column=0)
file.name=tk.Entry(root, textvariable=file.etyText, width=40)
file.name.grid(row=i, column=1)
tk.Button(root, text='選擇文件', command=file.btn_action).grid(row=i, column=2)
def show_path():
print(path_list)
tk.Button(root, text='Run', command=show_path).grid(row=iCount + 1, column=1)
tk.mainloop()
其实吧,感觉你这段代码有点复杂就是,看起来有点费眼睛
from tkinter import *
from tkinter import filedialog
root = Tk()
root.geometry('200x200')
def callback():
fileName = filedialog.askopenfilename()
print(fileName)
Button(root, text = 'Open the file', command = callback).pack()
root.mainloop()
这是小甲鱼课上的一个代码 |