私は PyKDE4/PyQt4 アプリケーションAutokeyに取り組んでいますが、プログラムに CTRL+C を送信すると、アプリケーションと対話するまでキーボード割り込みが処理されないことに気付きました。メニュー項目をクリックするか、チェックボックスを変更します。
lfaraone@stone:~$ /usr/bin/autokey
^C^C^C
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/autokey/ui/popupmenu.py", line 113, in on_triggered
def on_triggered(self):
KeyboardInterrupt
^C^C^C
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/autokey/ui/configwindow.py", line 423, in mousePressEvent
def mousePressEvent(self, event):
KeyboardInterrupt
これは、/usr/bin/autokey に以下があるにもかかわらずです:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from autokey.autokey import Application
a = Application()
try:
a.main()
except KeyboardInterrupt:
a.shutdown()
sys.exit(0)
KeyboardInterrupt がキャッチされない理由:
- GUIで次にアクションを実行するときではなく、発行するとき
- 最初の try/except 節によって?
Python 2.6 で Ubuntu 9.04 を実行しています。