私はPyKDE4/PyQt4アプリケーション、Autokeyに取り組んでいます。私は、プログラムとCTRL + Cを送信すると、アプリケーションと対話するまでキーボード割り込みが処理されないことに気付きました。メニュー項目をクリックするか、チェックボックスを変更します。 KDE PythonアプリケーションでKeyboardInterruptを処理するには?
[email protected]:~$ /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に/自動キーを持つ: KeyboardInterruptがキャッチされていないのはなぜ#!/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)
:
- 私はむしろときよりも、それを発行した場合私は次に、GUIの中でアクションを取る
- 最初のtry/except節では?
Python 2.6でUbuntu 9.04を実行しています。 a.main()
を呼び出す前に
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
:
sigがasapに捕まえられた場合、KeyboardInterruptが呼び出されていない理由が表示されます.Qt内でCベースのイベントループに入っていて、Pythonインタプリタが^ Cイベントループの回りに次回まで。 –
私は自分の答えを更新しました。 –