Tkinter 可以部分点击吗? (仅限 Windows)

Tkinter partially click through-able? (Windows only)

我正在编写一个将标尺悬停在所有其他屏幕内容上的应用程序。我使用以下方法使 tkinter window 和关联的 canvas 透明:

root.overrideredirect(True) #This hides the window outline/controls 
root.state('zoomed') #This scales the window to fill the page
root.configure(background=bgColor) #Set bg color of window (used to make transparent \/)
root.wm_attributes("-transparentcolor", bgColor) #Necessary for transparent, window
root.lift()#Lifting window above all others
root.wm_attributes("-topmost", True)#Hold window on top of all other windows

在使用 pyinstaller 编译为 exe 之前,我能够在透明的地方点击这个应用程序。然而,在编译为 exe 后,这不再是可能的。

我尝试了这里分享的解决方案: 然而,这使得整个 window 可以点击,这意味着我不能再与顶部的非透明部分进行交互 window (我必须能够这样做)。

hwnd = win32gui.FindWindow(None, "Digital Ruler") # Getting window handle
# hwnd = root.winfo_id() getting hwnd with Tkinter windows
# hwnd = root.GetHandle() getting hwnd with wx windows
lExStyle = win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE)
lExStyle |=  win32con.WS_EX_TRANSPARENT | win32con.WS_EX_LAYERED 
win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE , lExStyle )

我需要能够 move/interact 根 window 的任何彩色部分,但需要能够点击任何透明部分...到目前为止我只能完全抓住鼠标或完全错过。

我也遇到过这个问题...

经过多次尝试,我发现如果将 exe 文件与同样由 pyinstaller 生成的清单文件一起分发,点击功能将按预期工作。