Cra*_*ley 2 python tkinter toplevel
我正在尝试制作一个 tkinter 应用程序,当第一个窗口(根)关闭时,它不会关闭所有内容(其他窗口)。我尝试使用Toplevel()它非常适合其他程序中的弹出窗口,但不适用于制作基础级别。
from tkinter import *
top = Toplevel(bg='red')
top.mainloop()
Run Code Online (Sandbox Code Playgroud)
我不知道这是否可能,或者我不知道是否可以更改 的Tk()属性以使其不会关闭所有其他窗口。
显示两个窗口,因为创建 tkinter 小部件时,它也会强制Tk创建一个实例,并且每个小部件(除非显式传递父级)都是该自动创建的Tk实例的子级。所以你的代码本质上模仿了以下代码:
from tkinter import *
root = Tk()
top = Toplevel(root, bg='red')
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
现在有一些方法可以解决您想要的行为,其中一种是隐藏实际Tk实例:
import tkinter as tk
root = tk.Tk()
root.withdraw()
top = tk.Toplevel(root, bg='red')
#to display root window again
#root.iconify()
#root.deiconify()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
另一种方法是否决删除自身root,但我怀疑这实际上是您想要的:
import tkinter as tk
def callback():
print("Won't close")
root = tk.Tk()
root.protocol("WM_DELETE_WINDOW", callback)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2823 次 |
| 最近记录: |