如何构建一个从父窗口中取走焦点并强制用户输入的对话框?除非用户提供输入或按下取消按钮,否则将无法访问父窗口。所以这是一个消息框,但有一个输入字段。我找到了创建顶级窗口的顶级方法,但我找不到阻止用户访问父窗口的方法。感谢
答案 0 :(得分:5)
使窗口瞬态不是整个解决方案。强制对焦于自身的窗口称为“模态”窗口。关键是“grab_set()”方法。您可以使用模式窗口强制应用程序的焦点,或者强制整个窗口系统的焦点。
当您将“Tkinter”与“模态”结合使用时,您可以找到更多内容。一击:http://tkinter.unpythonic.net/wiki/ModalWindow
答案 1 :(得分:1)
我不是肯定的,但看起来如果你创建一个继承自TopLevel
的新类但是将它附加到父级,那么调用self.transient(parent)
你应该有一些接近你的东西喜欢。我假设它也会阻止对父窗口的输入。
主要技巧是在构造函数中完成的;首先,使用瞬态 将此窗口与父窗口(通常是应用程序)相关联 从中启动对话框的窗口。该对话框不会显示 作为窗口管理器中的图标(它不会出现在任务栏中 例如,在Windows下,如果你图标化父窗口,那么 对话框也将被隐藏