gpt4 book ai didi

python - Toplevel 来自 Tkinter Python 上的 Toplevel 行为

转载 作者:行者123 更新时间:2023-12-04 10:27:05 25 4
gpt4 key购买 nike

所以我编写了这个简单的代码来重新创建我希望我的实际应用程序的行为方式(对不起,如果我没有使用 并且真的很新):

import tkinter as tk
from tkinter import ttk

def OpenSecondToplevel():
Top2=tk.Toplevel(root)
Top2.geometry("250x200")
Top2.grab_set()
Top2.title("TopLevel 2")
Label = tk.Label(Top2, text="This is Toplevel 2")
Label.pack()

def OpenFirstToplevel():
Top1=tk.Toplevel(root)
Top1.geometry("250x200")
Top1.grab_set()
Top1.title("TopLevel 1")
Button2 = tk.Button(Top1, text="Open Toplevel 2", command=OpenSecondToplevel)
Button2.pack()

root = tk.Tk()
root.title("Main")
root.geometry("250x200")
Frame1 = tk.Frame(root)
Button1 = tk.Button(Frame1, text="Open Toplevel 1", command=OpenFirstToplevel)

Frame1.pack()
Button1.pack()

root.mainloop()

我录制了一个视频,解释了我的问题,因为我一直在关注 Toplevels行为,我似乎无法找到解决方法。我希望视频是可以理解的抱歉英语不是我的主要语言,如果您有任何问题可以问我,谢谢!

https://www.youtube.com/watch?v=Ks2zRU0fOJM

最佳答案

对于您的情况,简单的方法是保存具有 grab_set() 的当前窗口。在 OpenSecondToplevel() ,等待第二个顶层关闭,然后恢复 grab_set()保存窗口的状态:

def OpenSecondToplevel():
win = root.grab_current() # save the current window which has grab_set()
# win is None is no window has grab_set()
Top2=tk.Toplevel(root)
Top2.geometry("250x200")
Top2.grab_set()
Top2.title("TopLevel 2")
Label = tk.Label(Top2, text="This is Toplevel 2")
Label.pack()
if win:
# wait until current toplevel is destroyed
win.wait_window(Top2)
# resume grab_set() for saved window
win.grab_set()

关于python - Toplevel 来自 Tkinter Python 上的 Toplevel 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60593281/

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