我有一个运行一些嵌入式 Python 脚本的 MFC 应用程序。我正在尝试使这个嵌入式脚本创建的对话框之一成为模态,但我没有取得太大的成功。
任何人都可以指出制作模态对话框的方法吗?我需要为此使用 Windows 函数还是仅 Tk 或 Python 函数就足够了?
对于我在谷歌上搜索的内容,看起来像以下功能组合应该会产生魔力,但它们似乎并不像我期望的那样工作:
focus_set()
grab_set()
transient(parent)
原文由 Mac 发布,翻译遵循 CC BY-SA 4.0 许可协议
grab_set
是使窗口“应用程序模式”的正确机制。也就是说,它从同一应用程序中的所有其他窗口获取所有输入(即:同一进程中的其他 Tkinter 窗口),但它允许您与其他应用程序交互。如果您希望对话框是全局模式的,请使用
grab_set_global
。这将接管整个系统的 所有 键盘和鼠标输入。使用此功能时必须格外小心,因为如果您有阻止应用程序释放抓取的错误,您很容易将自己锁在计算机之外。当我需要这样做时,在开发过程中,我会尝试编写一个防弹故障保护程序,例如一个定时器,它会在固定的时间后释放抓取。