如何设置tkinter窗口焦点?

时间:2016-05-04 11:07:39

标签: python tkinter

我正在尝试使用tkinter制作虚拟键盘。有没有任何方法可以让tkinter窗口集中注意力?例如,在java中我们可以有setFocusableWindowState(false)

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我相信你可以用tkinter完成你想要的东西,但它不是没有得到焦点。我不认为,其他GUI工具会让它变得更容易。

它是操作系统的一部分,或者更确切地说是窗口管理器,当它被点击时,它会将焦点放在某个窗口上。所以,在虚拟键盘的情况下:

  1. 用户专注于文本编辑器(例如)。
  2. 用户按下虚拟键盘上的按钮。
  3. OS / Window管理器将焦点放在键盘窗口上,并将鼠标单击事件发送到GUI库(tkinter)。
  4. 在这里你需要确定窗口到达之前焦点的位置,即以某种方式获取文本编辑器窗口处理程序。
  5. 将按钮按下事件发送到该窗口并返回焦点。
  6. 重复。
  7. 您将使用tkinter绘制键盘窗口并处理虚拟键盘键上的鼠标点击/触摸。但是您需要与OS / Window管理器一起工作以通过处理程序识别其他窗口并向其发送按键事件。可能是您可以通过使用OS / Window管理器来防止焦点切换,但它不是tkinter或其他GUI库功能。