- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
似乎调用此方法的对象等待作为参数传递的窗口在继续其自己的循环之前被销毁 ...
从Misc
类的文档字符串中,我们可以观察到:
def wait_window(self, window=None):
"""Wait until a WIDGET is destroyed.
If no parameter is given self is used."""
乍一看,这个方法似乎可以制作一个Toplevel
模态,但事实并非如此。要创建一个 Toplevel
模态,我们必须使用 grab_set()
方法。
我看到了其他的解释:
wait_window
seems to not return until the given widget passed as parameter is not destroyed.
来自另一个地方:
wait_window(widget)
- Creates a local event that waits for the given widget to be destroyed. This loop doesn't affect the application's mainloop.
来自effbot文档,我们有:
The
wait_window
enters a local event loop, and doesn’t return until the given window is destroyed (either via the destroy method, or explicitly via the window manager):widget.wait_window(window)
window
等待 window
(本身)的确切含义是什么?
似乎调用wait_window
之后的代码不会执行,直到传递给相同方法的窗口未被销毁。在下面的工作示例中,我们可以看到刚才所说的证明:
from tkinter import *
def on_win_request(parent):
dialog = Toplevel()
parent.wait_window(dialog)
# executed only when "dialog" is destroyed
print("Mini-event loop finished!")
r = Tk()
b = Button(r, text='New Window', command=lambda: on_win_request(r))
b.pack()
b2 = Button(r, text='Hello!', command=lambda: print("hello"))
b2.pack()
r.mainloop()
“Mini-event loop finished!”
仅当名为 dialog
的本地 Toplevel
小部件被销毁时才会打印。
那么,到底在什么实际情况下应该使用这种方法呢?
最佳答案
如文档所述,它会一直等到给定的窗口被销毁。它主要用于模态弹出窗口,尽管它本身并不使窗口模态。在目标窗口被销毁之前,对该函数的调用不会返回。要制作模式窗口,您还必须进行抓取。
最常见的用途是创建 Toplevel 的一个实例,用小部件填充该窗口,然后在执行其他操作之前等待窗口被关闭。在等待期间,tkinter 能够继续正常处理事件。
例如,您可以禁用(或延迟创建)主 GUI,弹出“服务条款”通知,并等待用户确认服务条款、版权、许可等。一旦窗口被销毁后,您可以完成初始化,或启用一些小部件等。
标准文件对话框就是一个完美的例子:弹出对话框,然后代码等待用户选择文件,然后使用返回的文件名。在内部,对话框的实现使用 wait_window
以便在对话框被关闭之前它不会返回。
关于python - “wait_window”方法有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28388346/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!