【发布时间】:2020-11-19 03:23:49
【问题描述】:
有没有办法在不弹出窗口的情况下运行root = tk.Tk()?
我正在使用带有 tkinter UI 的 Python3.8.3。我正在尝试从我的主脚本中运行一个脚本(我将其称为辅助脚本,如果有更好的术语表示歉意)。这个想法是,用户将单击主脚本窗口上的一个按钮,然后将出现侧脚本窗口。如果我单独运行辅助脚本,它可以正常工作。如果我从主脚本调用辅助脚本,则会出现错误,因为 root 是一个局部变量。我可以通过在脚本中将 root 定义为全局变量来解决这个错误。但是,当我这样做时,导入端会导致一个空的 tkinter 窗口。
如果脚本是:
def main():
root = tk.Tk()
app = MainApp(root)
root.mainloop()
if __name__ == "__main__":
main()
else:
pass
错误:从主脚本调用时未定义名称“root”
如果脚本是:
root = tk.Tk()
def main():
app = MainApp(root)
root.mainloop()
if __name__ == "__main__":
main()
else:
pass
root 现在是一个全局变量,但是在导入此行root = tk.Tk()
你能推荐我一个克服这个问题的好方法吗?
【问题讨论】:
-
root.withdraw()隐藏窗口并将其恢复,你可以使用root.iconify() -
您关于第一个区块的陈述不正确。如果我创建一个简单的脚本来导入第一个块,它不会给出你所说的错误。
-
这真的取决于主脚本的设计,但你没有发布你的主脚本。
-
我想我应该发布大部分代码。我害怕焦点会转移。学过的知识。无论如何,我学会了如何隐藏一个窗口以及修复它的好方法。谢谢大家的投入。
标签: python tkinter import popup