Tkinter透视窗口不受鼠标点击的影响

时间:2015-04-05 15:18:34

标签: python tkinter controls mouse alpha-transparency

我目前通过发送鼠标和击键命令来控制python游戏。我要做的是在游戏的顶部放置一个透明的Tkinter窗口,以提供一些信息,如鼠标位置和像素颜色。

我熟悉更改窗口的alpha属性以使其透明但不知道如何始终将该窗口保持在前面并且鼠标点击通过它。

我目前控制游戏的方法包括在某些位置截取屏幕截图并分析颜色内容。在没有Tkinter窗口干扰的情况下,我还需要一些方法来做到这一点。

Pyscreenshot用于截图 win32api用于点击

谢谢你, 艾力

1 个答案:

答案 0 :(得分:1)

您可以使用SetWindowLong模块的win32gui功能。如果您想要一个透明的点击窗口,您必须在我们的窗口上应用GWL_EXSTYLE。因此,您需要窗口的窗口。

    hwnd = win32gui.FindWindow(None, "Your window title") # 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 )

如果您想通过winapi更改窗口的透明度,请使用SetLayeredWindowAttributes