![像 gksu 这样的应用程序在启动时如何锁定焦点?](https://linux22.com/image/1430667/%E5%83%8F%20gksu%20%E8%BF%99%E6%A0%B7%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%9C%A8%E5%90%AF%E5%8A%A8%E6%97%B6%E5%A6%82%E4%BD%95%E9%94%81%E5%AE%9A%E7%84%A6%E7%82%B9%EF%BC%9F.png)
我很好奇,像 gksu 这样的应用程序在提示输入密码时如何锁定屏幕焦点。我看到 gksu 甚至有一个选项“-g”,可以禁用此行为。
我对为 Python 应用程序做类似的事情很感兴趣(我使用 Quickly 生成 GUI 应用程序 -- GTK+3),但我找不到有关如何完成此操作的任何信息。我找到了诸如 fullscreen() 等东西,但我真的很喜欢 gksu 的做法。
我正在使用 Lubuntu 14.04 (LXDE)
如有任何指点或建议我将不胜感激。
答案1
如果你看看源代码您将看到执行锁定和解锁的功能grab_keyboard_and_mouse()
和。ungrab_keyboard_and_mouse()
核心锁定和解锁功能是通过调用 GTK 库函数gdk_pointer_grab()
及其等效gdk_keyboard_grab()
函数来完成的..._ungrab()
。
您需要让这些函数可以从 Python 调用,但我不知道这是不是一个简单的任务。或者,也许您可以找到一个程序,它会显示一个带有一些输入字段和按钮的消息框,就像一个扩展的xmessage
,但在活动时锁定屏幕。