所以我试图通过使用 pyHook 感知鼠标左键单击来打开一个 tkinter 窗口,我希望新打开的窗口能够获得焦点。问题是无论我尝试什么焦点方法,当前窗口都会一直保留焦点,而不是焦点切换到新的 tkinter 窗口。这是代码:
from tkinter import *
import pyHook
import pythoncom
def open_GUI():
root = Tk()
root.title('test')
entry_box = Entry(root, font=("Calibri", 11))
entry_box.focus()
entry_box.pack(fill=X, side=RIGHT, expand=True)
root.after(1, lambda: root.focus_set())
root.mainloop()
return True
def MouseLeftDown_Func(event):
print('mouse')
open_GUI()
return True
def KeyDown_Func(event):
print('key')
return True
hooks_manager = pyHook.HookManager()
hooks_manager.KeyDown = KeyDown_Func
hooks_manager.MouseLeftDown = MouseLeftDown_Func
hooks_manager.HookKeyboard()
hooks_manager.HookMouse()
pythoncom.PumpMessages()
我认为问题在于,当我左键单击当前窗口时,焦点优先于最近单击的窗口(当前窗口),并且任何调用 tkinter 窗口焦点的命令都会被忽略。
有谁知道左键单击后如何将焦点切换到新的 tkinter 窗口?