【发布时间】:2020-02-03 22:42:33
【问题描述】:
我正在尝试制作一个程序,您可以在其中登录并转到主菜单,但是我在主菜单上遇到了问题。我认为这可能与删除根窗口有关,但我没有尝试过。当所有代码都在一个文件中时,此代码有效,但我希望它们位于单独的文件中。
from tkinter import *
import sys
import sqlite3
def main_menu(root):
global Main
if 'normal' == root.state():
Main = Toplevel()
Main.title("Main Menu")
lbl_main = Label(Main, text = "Welcome to the main menu").pack()
btn_back = Button(Main, text = "Back", command = Back(root)).pack(pady=20, fill = X)
root.withdraw()
def Back(root):
Main.destroy()
if 'normal' != Main.state():
root.deiconify()
这些函数都在导入到主文件的单独文件中。每次我尝试运行主文件时,部分日志都可以正常工作,但是在加载主菜单时,会出现此错误代码。
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\*\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "C:\Users\*\LOG IN 3.py", line 51, in login
mainmenu.main_menu(root)
File "C:\Users\*\mainmenu.py", line 13, in main_menu
btn_back = Button(Main, text = "Back", command =
Back(root)).pack(pady=20, fill = X)
File "C:\Users\*\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 2369, in __init__
Widget.__init__(self, master, 'button', cnf, kw)
File "C:\Users\*\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 2299, in __init__
(widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: bad window path name ".!toplevel"
如果有人可以帮助我,那就太好了。 如果这个解释不清楚,我很抱歉。我会尽量与任何有疑问的人一起解决。
【问题讨论】: