1

如何构建一个对话框,将焦点从父窗口中移开并强制用户输入?除非用户提供输入或按下取消按钮,否则父窗口将无法访问。所以它是一种消息框,但有一个输入字段。我找到了创建顶级窗口的顶级方法,但找不到阻止用户访问父窗口的方法。谢谢

4

2 回答 2

5

使窗口瞬态并不是整个解决方案。将焦点集中到自身的窗口称为“模态”窗口。关键是“grab_set()”方法。您可以拥有强制应用程序焦点或强制整个窗口系统焦点的模式窗口。

当您结合“模态”搜索“Tkinter”时,您可以找到更多信息。一击:http ://tkinter.unpythonic.net/wiki/ModalWindow

于 2012-11-10T15:42:40.220 回答
1

我不是很肯定,但看起来如果你创建一个继承自的新类TopLevel但将其附加到父类,然后调用self.transient(parent)你应该有一些接近你想要的东西。我假设它也会阻止对父窗口的输入。

主要的诡计是在构造函数中完成的;首先,transient 用于将此窗口与父窗口(通常是启动对话框的应用程序窗口)相关联。该对话框不会在窗口管理器中显示为图标(例如,它不会出现在 Windows 下的任务栏中),如果您将父窗口图标化,该对话框也将被隐藏

查看此页面了解更多详情

于 2012-11-10T15:09:12.743 回答