簡體   English   中英

如何在 Pygame 中禁用鍵盤事件?

[英]How to disable keyboard events in Pygame?

我在 Blender 中使用 pygame 來獲得多點觸控支持。

不幸的是,pygame 捕獲了所有鍵盤輸入,這使得在 Blender 中無法使用快捷鍵。

有人可以幫我退訂所有鍵盤事件嗎?

謝謝

問題是,我使用 win32gui 來渲染 pygame 總是在頂部。 使用“win32con.SWP_NOACTIVATE”標志,我可以強制 pygame 處於非活動狀態並讓攪拌機處於活動狀態。

    hwnd = pg.display.get_wm_info()["window"]

    rect = win32gui.GetWindowRect(hwnd)
    x = rect[0]
    y = rect[1]
    w = rect[2] - x
    h = rect[3] - y

    win32gui.SetWindowLong (hwnd, win32con.GWL_EXSTYLE, win32gui.GetWindowLong (hwnd, win32con.GWL_EXSTYLE ) | win32con.WS_EX_LAYERED )
    win32gui.SetWindowPos(hwnd, win32con.HWND_TOP, x, y, w, h, win32con.SWP_NOACTIVATE) 

您可以阻止特定事件。 根據 pygame wiki,這將阻止 pygame 對這些事件進行排隊,但我無法測試它是否會阻止 pygame 請求鍵盤輸入。

pygame.event.set_blocked([pygame.KEYDOWN, pygame.KEYUP])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM