Python 使用tkinter中的toplevel在另一个模块中的窗口上创建新窗口

Python 使用tkinter中的toplevel在另一个模块中的窗口上创建新窗口,python,tkinter,module,toplevel,Python,Tkinter,Module,Toplevel,我想使用顶级方法在另一个模块的窗口上创建一个窗口 如果我没有使用面向对象的方法,有没有办法将GUI分成模块 下面是一个简单的示例,第一个模块(file1.py): 导入tkinter 从file2导入用户 全局主窗口 MainWindow=tkinter.Tk() 主窗口几何(“320x300”) 主窗口。标题(“”) def check(): 用户() button1=tkinter.Button(主窗口,宽度='15' ,text=“check”,bg=“绿色”,fg=“橙色” ,命令=检查

我想使用顶级方法在另一个模块的窗口上创建一个窗口

如果我没有使用面向对象的方法,有没有办法将GUI分成模块

下面是一个简单的示例,第一个模块(
file1.py
):

导入tkinter
从file2导入用户
全局主窗口
MainWindow=tkinter.Tk()
主窗口几何(“320x300”)
主窗口。标题(“”)
def check():
用户()
button1=tkinter.Button(主窗口,宽度='15'
,text=“check”,bg=“绿色”,fg=“橙色”
,命令=检查)
按钮1.位置(x=20,y=20)
MainWindow.mainloop()
另一个模块是(
file2.py
):

从tkinter导入*
从file1导入主窗口
def user():
userWindow=Toplevel(主窗口)
userWindow.geometry(“320x300”)
userWindow.title(“你好”)
user\u name=标签(userWindow,text=“hello”)
用户名位置(x=20,y=190)
但在这种情况下,这是不可能的。我想知道为什么不可能,以及
我正在寻找一个解决方案。

您没有提到为什么您认为这是不可能的,尽管我猜这是因为
用户
不知道
主窗口是什么。你有一个循环导入

解决这个问题的简单方法是将其作为参数传入,而不是让
file2.py
尝试导入
file1.py

# file1.py
...
def check():   
    user(MainWindow)
...


为什么你认为这是不可能的?你运行代码时它在做什么?我试过了。它没有运行,错误消息是“无法从'file2'导入名称'user'”。请回答您的问题以包含完整错误。
# file2.py
def user(MainWindow):
    ...