从脚本加载变量

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

我知道这是一个普遍的问题,但是我找不到与我类似的解决方案。我有两个程序文件-一个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提供输入。它...

python user-interface tkinter python-import optionmenu
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.