RE:验证是否存在Toplevel()
我为用户设置了15秒的时间限制,因为他们选择是否需要9次随机元音或随机辅音,以形成随机的字母列表。 (我使用的是包含我从其他人那里得到的GUI计时器的Toplevel)。
如果他们按时管理它,ORIGINAL窗口会出现一个类似的计时器,取代元音/辅音按钮(我此时已销毁),旧的SEPARATE窗口Toplevel计时器被销毁。但是,我想进行第二次倒计时,因为它必须在30秒开始,在正确的时间开始,而不是在后台滴答(在VOWEL / CONSONANT按钮后面),在此期间用户仍在选择字母。
如果这些都没有任何意义,那么这是代码的基本概要,它不起作用。
# 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
的效果做些什么吗?
(编辑:是的; 我终于完成了我的作业,发现了一些我很想念的东西,不幸的是,我回答了我自己的问题)
答案 0 :(得分:2)
哎呀我刚刚找到了自己问题的答案。
您可以使用“tkinter.Toplevel.winfo_exists(my_toplevel_name)
”检查顶级是否存在。
如果将它放在print语句中,如果它存在则返回1,如果不存在则返回0.