python - 没有根的顶层窗口
问题描述
root = tk.Tk()
root.geometry("400x400")
button = tk.Button(root, text = 'run')
button.pack()
def run2():
new_root = tk.Toplevel()
new_root.geometry("400x500")
label = tk.Label(new_root, text="This is new root")
label.pack()
root.destroy()
new_root.mainloop()
button.config(command = run2)
root.mainloop()
我想创建一个Toplevel
窗口,但也想破坏根窗口。但我做不到。
解决方案
我想创建一个顶级窗口,但也想破坏根窗口。但我做不到。
这是正确的:你做不到。
tkinter 的一个基本方面是小部件存在于层次结构中,并且该层次结构必须具有根节点。如果您销毁树中的任何节点,所有子节点都会被自动删除。因此,如果您销毁根窗口,那么根的所有子窗口也将被删除。
没有办法绕过这个事实——必须有一个根窗口。您可以将其隐藏起来,但它仍然必须存在。
推荐阅读
- wpf - WPF RichTextBox 内容绑定
- excel - Excel 对单个单元格中的数据进行列分隔
- java - android firebase 数据库 java.lang.String java.lang.Object.toString()' 在空对象引用上
- filter - pandoc:无法识别的选项`lua-filter` pandoc --lua-filter test.lua test.md
- linux - Visual Studio Code 中的资源管理器路径
- html - SVG 标记中 refX、refY 的可能值
- android - 无法使用 Robolectric 4.0.1 运行测试,“packageDebugUnitTestForUnitTest”失败
- c# - How to enable fully working HTTPS for .NET Core WebApp on Debian with nginx?
- java - 如何从 2 个现有的 ArrayLists (Java) 创建矩阵?
- node.js - 异步等待未按预期运行