KDE Python 응용 프로그램에서 키보드 인터럽트 처리?
-
20-09-2019 - |
문제
나는 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에서 조치를 취하는 것이 아니라
- 초기 시도/제외 조항에 의해?
Python 2.6으로 Ubuntu 9.04 실행.
해결책
이것을 시도하십시오 :
import signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
호출하기 전에 a.main()
.
업데이트: CTRL-C는 GUI 응용 프로그램에서 복사에 사용될 수 있습니다. QT에서 ctrl+를 사용하는 것이 좋습니다. 이로 인해 이벤트 루프가 종료되고 응용 프로그램이 닫히게됩니다.
제휴하지 않습니다 StackOverflow