gpt4 book ai didi

python - 第一个 Python Tkinter 窗口可以工作,但其余窗口是空白的

转载 作者:行者123 更新时间:2023-12-01 06:14:38 26 4
gpt4 key购买 nike

我想我错过了一些关于 Tkinter 的基本知识。

创建具有相同隐藏根窗口的多个窗口的正确方法是什么?我可以打开一个窗口,但一旦关闭,后续窗口就会显示为空白,其中没有任何小部件。我还注意到,如果我让根窗口可见,当我关闭第一个“真实”窗口时它就会消失。

我会发布代码,但我无法找出导致该行为的原因,并且我的实际代码相当复杂,并且必须在另一个(甚至更复杂)程序中运行。

我尝试过使用.quit().destroy()关闭窗口,然后输入 mainloop()wait_window()在不同的地方循环,但一切要么仍然有错误,要么出现更糟糕的问题。我想我正在寻找的只是一个不同的视角。

我的问题似乎与 here 类似,但我无法从答案中获得任何新内容。

有什么想法吗?我知道这有点模糊。谢谢

已解决:这可能对任何人都没有帮助,但我解决了问题。我有几个窗口类,每个类都派生自 Tkinter.Toplevel。在我的基地Window课上我做了一个close()调用 self.destroy() 的函数。然后在它的子类中我添加了自定义代码来存储它们的几何形状等,最后调用 Window.close(self) 。这不起作用,因为如果我只使用 self.quit()而不是调用父类(super class)的 close() ,一切都很好。

最佳答案

您的问题太模糊,无法确定问题所在。请放心,当您正确使用它时,创建多个窗口并随意隐藏和显示它们是非常容易的。

你问创建多个窗口的正确方法是什么;答案是为每个窗口调用 Toplevel(),仅此而已。然后您就可以将小部件放置在该窗口内。没有 secret ,没有隐藏选项,没有额外的命令。只需确保每个子部件的父部件设置正确即可。

这是一个简单的例子:

import Tkinter as tk
import sys

def exit():
sys.exit(0)

root = tk.Tk()
root.wm_withdraw()
for i in range (10):
top = tk.Toplevel(root)
top.title("Window %s" % i)
label = tk.Label(top, text="This is toplevel #%s" % i)
button = tk.Button(top, text="exit", command=exit)
label.pack()
button.pack()

root.mainloop()

关于python - 第一个 Python Tkinter 窗口可以工作,但其余窗口是空白的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3945585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com