3

display.grab_keyboard を使用するとすぐに、他のウィンドウは自分のフォーカスを認識していないようです。

キーボードグラブを実行すると、他のウィンドウを選択してキーイベントを送信することもできますが、このウィンドウがテキスト入力の場合、点滅するカーソルはありません。

フォーカスイベントを生成するgrab_keyboardについて何かを読みましたが、それはすべてのフォーカスイベントをブロックするという意味ではありませんね?

ここに来ないのは何ですか?

from Xlib import X,XK
from Xlib.display import Display
import signal,sys

root = None
display = None

def main():
    # current display
    global display,root
    display = Display()
    root = display.screen().root


    root.change_attributes(event_mask = X.KeyPressMask|X.KeyReleaseMask)

    root.grab_keyboard(True, X.GrabModeAsync, X.GrabModeAsync,X.CurrentTime)

    signal.signal(signal.SIGALRM, lambda a,b:sys.exit(1))
    signal.alarm(10)

    while True:
        event = display.next_event()
        print event.type

main()
4

1 に答える 1

1

キーボードをつかんでいます。つまり、すべてのキーボード入力がプログラムに送られ、他のウィンドウはキーボード入力を受け取ることができません。それがキーボードをつかむポイントです。

于 2013-08-11T07:56:13.287 に答える