0

次のコードを検討してください。

#!/usr/bin/env python 

from Xlib.display import Display
import os

def main():
        disp = Display() # connect to display
        while True:
                print("1")
                event = disp.next_event()
                print("2")
                if event.type == Xlib.protocol.event.KeyPress:
                        print("keypress!")

if __name__ == '__main__':
        main()

このコードは出力しますが、出力1しません2。ディスプレイ接続にぶら下がっているようです。なぜそうなのか?ありがとうございました。

4

1 に答える 1

1

next_event()メソッドはブロッキングメソッドです。ドキュメントを参照してください。

イベントキュー内の次のイベントを返します。イベントキューが空の場合は、イベントがネットワークから読み取られるまでブロックし、そのイベントを返します。

ブロックされている場合は、まだイベントが到着していないためです。

于 2012-08-17T16:07:39.447 に答える