我知道这是一个普遍的问题,但是我找不到与我类似的解决方案。我有两个程序文件-一个GUI文件(tkinter)和一个Main文件,它们为Gui提供输入。
直到我想将OptionMenu放入GUI文件(从主文件获取列表)之前,它都可以正常工作。
我知道通常可以使用:
from GUI-File import variable_from_Main-File
但是!当我这样做时,整个文件在GUI完成之前就已加载,因此在某些点上只是未定义变量。
这里是用于更好理解的代码:
第一个主文件
import xml.etree.ElementTree as ET import DLE_Gui as gui xmlOriginUp = open('%s' %gui.load.Filename, 'r') xmlOrigin = ET.parse(xmlOriginUp) elemList = [] tags = [] for elem in xmlOrigin.iter(): elemList.append(elem) for ta in range(len(elemList)): tags.append(elemList[ta].tag)
和GUI文件:
import tkinter from tkinter import filedialog, Tk, Button, LabelFrame, Label, Entry, messagebox, Text, OptionMenu, StringVar from tkinter.filedialog import askopenfilename from DLE_v200609 import tags def fin(): gui.destroy() def load(): load.Filename = askopenfilename(filetypes=(("XML", "*.xml"),("All files", "*.*"))) print(load.Filename) Label(text=load.Filename, bg="white", borderwidth=2, relief="sunken").grid(row=1, column=1) gui = tkinter.Tk() gui.title('Dante Label XML-Export') Label(text='Öffnen:').grid(row=1, sticky='w', padx=5, pady=5) Label(bg="white", borderwidth=2, relief="sunken").grid(row=1, column=1, ipadx=178) Button(text='dursuchen...', command=load).grid(row=1, column=2, ipadx=5) Label(text='Label:').grid(row=2, sticky='w', padx=5, pady=5) var = StringVar(gui) var.set('---') optMen = OptionMenu(gui, var, tags) optMen.grid(row=2, column=1) Button(text='Schließen', command=fin).grid(row=4, column=2, padx=10, pady=10) gui.mainloop()
因此,我希望列表'tags []'作为GUI中选项菜单的变量列表。该程序的答案是:
xmlOriginUp = open('%s' %gui.load.Filename, 'r') AttributeError: module 'DLE_Gui' has no attribute 'load'
有人知道我该如何解决吗?
我知道这是一个普遍的问题,但是我找不到与我类似的解决方案。我有两个程序文件-一个GUI文件(tkinter)和一个Main文件,它们为Gui提供输入。它...