我希望一切都好。相当新的编程,所以请多多包涵。
我正在使用的Tkinter会提示我选择一组将被用来执行一些分析文件的GUI。我希望将这些文件保存在我以后可以参考清单。有两个必需的文件,一个DBC文件和ASC文件。什么我有问题是能够引用文件(S)我所定义的功能之外。我试图将其定义为一个全局变量(我已阅读是不可取的,因为它可以导致在道路上的问题)。我得到一个错误说DBFILES或ascfiles时,只是想打印没有定义。下面是我到目前为止写的:
import tkinter as tk
from tkinter import messagebox
from tkinter import filedialog
root = tk.Tk()
root.geometry("500x700")
def dbbutton():
dbfiles = filedialog.askopenfilenames(parent=root, title='Select .DBC File(s)')
dbfiles = root.tk.splitlist(dbfiles)
for file1 in dbfiles:
L1.insert(tk.END, file1)
return dbfiles
def ascbutton():
ascfiles = filedialog.askopenfilenames(parent=root, title='Select .ASC File(s)')
ascfiles = root.tk.splitlist(ascfiles)
for file2 in ascfiles:
L2.insert(tk.END, file2)
return ascfiles
b1 = tk.Button (root, text= "Select Database File(s)", command = dbbutton)
b1.pack()
L1 = tk.Listbox(root, selectmode = "multiple", height = 10, width = 80)
L1.pack()
b2 = tk.Button (root, text = "Select ASC File(s)", command = ascbutton)
b2.pack()
L2 = tk.Listbox(root, selectmode = "multiple", height = 10, width = 80 )
L2.pack()
root.mainloop()
什么是我引用的功能外,这些文件的最有效的方法是什么?
功能之外创建的文件列表,然后追加到它里面的函数:
ascfile_list = [] # Create list to hold filenames
def ascbutton():
filename_list = filedialog.askopenfilenames(parent=root, title='Select .ASC File(s)')
for filename in filename_list:
L2.insert(tk.END, filename)
ascfile_list.append(filename) # Append filename to list