My Tk应用程序有一个主窗口,执行时会出现新窗口以显示正在运行的进度。我希望所有事件(鼠标,键盘等)都指向进度窗口,因此当程序运行时,用户无法与主窗口交互,必须等到执行完成并且进度窗口被销毁。
我尝试使用抓取来处理这个问题。
grab set .progress_window
但它不起作用。当鼠标点击它外面的某个地方时,进度窗口仍然会消失。
grab set -global .progress_window
似乎有效,但它会阻止我计算机上运行的所有其他窗口。
如何解决这个问题? 非常感谢。
答案 0 :(得分:1)
您可能也需要这样来保持最佳状态:
wm transient .progress_window .
另外,看看Tk本身如何创建模态对话框。 有一些箍要完全正确,例如: https://github.com/tcltk/tk/blob/master/library/dialog.tcl