定义使用Tkinter的使用进行分析文件的列表。有一个很难访问全局变量。 (Python 3中)

问题描述 投票:0回答:1

我希望一切都好。相当新的编程,所以请多多包涵。

我正在使用的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()

什么是我引用的功能外,这些文件的最有效的方法是什么?

python-3.x tkinter listbox
1个回答
0
投票

功能之外创建的文件列表,然后追加到它里面的函数:

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
© www.soinside.com 2019 - 2024. All rights reserved.