我有两个文件,一个包含tkinter代码,另一个包含一个函数。我在tkinter窗口中有一个按钮和一个Entry
字段。我试图在单击按钮时执行该功能,但它需要Entry
字段中的文本才能工作。尝试从tkinter文件导入任何内容时出错:
tkinter_file.py:
import File
window = Tk()
def input():
s = entry1.get()
return s
entry1 = Entry(window)
button1 = Button(window, text='GO', command=File.function)
File.py:
from tkinter import *
import tkinter_file
def function():
req_url = 'http://someurl.com/{}'.format(tkinter_file.input)
requests get url etc. etc.
我将tkinter_file
导入File.py
,或者甚至只导入input
函数时似乎收到错误:
File "/etc/etc/tkinter_file.py", line 75, in <module>
button1 = Button(window, text='GO', command=File.function)
AttributeError: module 'File' has no attribute 'function'
我认为req_url
没有立即获得s
值是问题,也可能将2个文件相互导入,但是你如何克服这个问题呢? / p>
答案 0 :(得分:3)
如果您有两个模块,例如a.py
和b.py
,则无法在b
中导入模块a
,然后在a
中导入模块b
{1}},因为这会产生循环依赖关系,无法明确解决!
解决方案是将参数作为参数传递给File.function
,使该函数正常运行,即entry1
的内容。
button1 = Button(window, text='GO', command=lambda: File.function(entry1.get()))