Tcl / Tk全局占领一个窗口

时间:2014-09-22 02:29:32

标签: global tk

My Tk应用程序有一个主窗口,执行时会出现新窗口以显示正在运行的进度。我希望所有事件(鼠标,键盘等)都指向进度窗口,因此当程序运行时,用户无法与主窗口交互,必须等到执行完成并且进度窗口被销毁。

我尝试使用抓取来处理这个问题。

grab set .progress_window

但它不起作用。当鼠标点击它外面的某个地方时,进度窗口仍然会消失。 grab set -global .progress_window似乎有效,但它会阻止我计算机上运行的所有其他窗口。

如何解决这个问题? 非常感谢。

1 个答案:

答案 0 :(得分:1)

您可能也需要这样来保持最佳状态:

wm transient .progress_window .

另外,看看Tk本身如何创建模态对话框。 有一些箍要完全正确,例如: https://github.com/tcltk/tk/blob/master/library/dialog.tcl