gpt4 book ai didi

python - 检查 tkinter 中是否存在 Toplevel() 对象?

转载 作者:行者123 更新时间:2023-11-30 22:41:30 24 4
gpt4 key购买 nike

RE:验证 Toplevel() 是否存在

我为用户设置了 15 秒的时间限制,让他们选择是否想要随机元音或随机辅音,9 次,以形成随机字母列表。 (我正在使用包含 GUI 计时器的 Toplevel,这是我从其他人的答案中得到的)。

如果他们按时管理它,一个类似的计时器会出现在原始窗口上,取代元音/辅音按钮(我此时已销毁),并且旧的单独窗口顶级计时器将被销毁。然而,我想进行第二次倒计时,因为它必须在 30 秒开始,在正确的时间开始,而不是在后台(在元音/辅音按钮后面)滴答作响,在此期间用户仍在选择字母。

如果这些都没有任何意义,那么这就是不起作用的代码的基本轮廓。

# I tried to test if the the Toplevel timer had been destroyed (which happens as soon as the 
# user has finished with the 9 letters). If so, I could then start the NEW 30-second timer.

import tkinter as tk

root = tk.Tk()

test = tk.Label()


# above: later, will test if a Label() widget counts as a 'child'. If it was the case
# that only Toplevels counted as 'children', then I could have used the 'root.winfo_children'
# command to test if the Toplevel() timer had been destroyed, in which case I can start a new
# 30-second timer on the original window.

test.pack()

extraWindow = tk.Toplevel(root)

extraWindow.destroy() # for below, to TRY and test whether the Toplevel object is destroyed

if not root.winfo_children():
print("N0") # doesn't happen, because test label is also a 'child'
# IMAGINE that this is where I set off the NEW 30-second timer

root.mainloop()

不幸的是,我在原始窗口上有一个标签,显示在前 15 秒内出现的字母列表,而用户在新窗口中从尽可能多的字母中想出一个真实的单词, 30秒。我无法使用 winfo_children。我可以做些什么来达到 winfo_Toplevel 的效果吗?

(编辑:是的;我终于做了作业,发现了一些我错过的非常明显的东西,所以,不幸的是,我回答了我自己的问题)

最佳答案

哎呀,我刚刚找到了我自己问题的答案。您可以使用“tkinter.Toplevel.winfo_exists(my_toplevel_name)”检查顶级是否存在。

如果将其放入 print 语句中,如果存在则返回 1,如果不存在则返回 0。

关于python - 检查 tkinter 中是否存在 Toplevel() 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42520770/

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