텍스트 입력을위한 가상 키보드를 작성해야하는데,이 작업을 위해 Python 및 Qt (PyQt) 라이브러리를 사용할 계획입니다. 문제는 KeyPress를 내부 Qt 이벤트로 시뮬레이트하는 방법을 모르지만 실제 키보드의 시뮬레이션처럼 실제 키보드처럼 작동 할 수 있으므로 내 컴퓨터의 응용 프로그램과 상호 작용할 수 있습니다. 이것에 관해 Qt 문서에서 아무것도 찾을 수 없습니다. 그래서 PyQt/Qt를 통해이를 수행 할 수있는 방법이 있습니까? 아니면 파이썬 라이브러리를 사용해야할까요?파이썬/PyQt에서 실제 키보드의 키 누르기를 시뮬레이트하는 방법은 무엇입니까?
답변
나는 이것이 PyQt 질문이라는 것을 알고 있지만, OP의 요청에 따라 파이썬 솔루션을 찾는 데 도움이되는 경우 C++ 예제를 제공 할 것입니다.
키보드를 시뮬레이션하는 C++ 측에서는 키 누르기 이벤트를 응용 프로그램의 이벤트 루프에 게시하여 수행합니다. 이것들은 '내부 Qt 이벤트'로 간주 될 수 있지만, 물리적 인 키 누름에 대해 수신되는 인터페이스와 완전히 동일합니다. 다음과 같이 그들은 달성과 같습니다 PyQt는 QCoreApplcation
API를 통해 찾고
QKeyEvent *event = new QKeyEvent (QEvent::KeyPress, Qt::Key_Enter);
QCoreApplication::postEvent (receiver, event);
, 그와 똑같이 일을 할 수 있어야하므로 postEvent
기능은 존재 (불행하게도 나는 익숙 해요로 예를 제공 할 수 없습니다 writting python 스크립트).
도움을 주셔서 감사합니다.하지만이 경우 수신기는 무엇입니까? –
Receiver는 keypress 이벤트를 처리하는'QObject '중 하나입니다. 기본 창, 텍스트 편집, 키 누르기 이벤트 필터가있는 다른 위젯 일 수 있습니다. 기본적으로 실제 키를 누르는 핸들러가 될 것으로 기대했던 'QObject'를 선택하십시오. –
같은 문제가있었습니다.
삐뚤 거리는 소리가 아주 좋고 어리 석습니다.
import pyautogui
pyautogui.typewrite("the stuff")
또는 당신은 실제로 문자의 키 사용을 눌러 시뮬레이션하려면 :이 도움이 https://pyautogui.readthedocs.org/en/latest/
희망 :
import pyautogui
pyautogui.keypressDown("the stuff")
pyautogui.keypressUp("the stuff")
여기 문서입니다.
- 1. Greasemonkey 스크립트에서 키 누르기를 시뮬레이트하는 방법은 무엇입니까?
- 2. ExtendScript에서 키 누르기를 시뮬레이트하는 방법은 무엇입니까?
- 3. js에서 키 누르기를 시뮬레이트하는 방법
- 4. 다른 프로세스로 키 누르기를 시뮬레이트하는 드라이버
- 5. 키보드의 키 누르기를 "억제"비활성화하는 방법
- 6. 백그라운드 창에서 키 누르기를 시뮬레이트하는 방법
- 7. 실제 및 가상 키 누르기를 구분하는 방법은 무엇입니까?
- 8. 키 누르기를 사용하는 방법은 무엇입니까?
- 9. 실제 장치에서 들어오는 호출을 시뮬레이트하는 방법은 무엇입니까?
- 10. UIWebView에서 두 번 누르기를 프로그래밍 방식으로 시뮬레이트하는 방법은 무엇입니까?
- 11. .NET에서 특정 키 누르기를 비활성화하는 방법은 무엇입니까?
- 12. 키 누르기를 사용하여 DataGrid를 탐색하는 방법은 무엇입니까?
- 13. 기본 버튼의 키 누르기를 처리하는 방법은 무엇입니까?
- 14. 키 누르기를 정확하게 시뮬레이션하는 방법은 무엇입니까?
- 15. 셀렌 IDE - 선택에 대한 아래쪽 화살표 키 누르기를 시뮬레이트하는 방법은 무엇입니까?
- 16. GDK로 키 이벤트를 시뮬레이트하는 방법은 무엇입니까?
- 17. 플렉스 - 키 누름을 시뮬레이트하는 버튼
- 18. 키보드의 로그 조합
- 19. 키보드의 키 위치 얻기
- 20. HTML5; Javascript에서 실제 키보드의 존재를 감지하십시오.
- 21. 키 누르기를 구현하려면 KeyPressEvent 또는 QAction을 사용해야합니까?
- 22. 에뮬레이터의 하드웨어 셔터 버튼을 시뮬레이트하는 방법은 무엇입니까?
- 23. 키 누르기를 DirectX 응용 프로그램에 보내는 방법은 무엇입니까?
- 24. VBA에서 실행을 일시 중지하고 키 누르기를 기다리는 쉬운 방법은 무엇입니까?
- 25. JavaScript에서 Ctrl-P 키 누르기를 수신하는 방법은 무엇입니까?
- 26. html5 캔버스에서 키 누르기를 인식하는 가장 좋은 방법은 무엇입니까?
- 27. 처리되지 않은 키 누르기를 특정 입력 필드로 보내는 방법은 무엇입니까?
- 28. 시간이 지날 때 키 누르기를 수집하는 방법은 무엇입니까?
- 29. Term :: TermKey : 마우스 이벤트와 키 누르기를 잡는 올바른 방법은 무엇입니까?
- 30. 자바 스크립트로 웹 페이지에서 ESC 키 누르기를 에뮬레이션하는 방법은 무엇입니까?
그래서 [아니오]를 의미합니다 (http://stackoverflow.com/questions/2035310/how-can-i-simulate-user-interaction-key-press-event-in-qt)? – 101
@figs이 함수는 응용 프로그램 내부에서만 작동하는 것처럼 보이지만 수신기 위젯이 있어야합니다. 하지만 실제 키보드를 시뮬레이트하려면 앱이 필요하므로 브라우저에서 텍스트를 입력 할 때 앱을 사용할 수 있습니다. –
플랫폼에 따라 다릅니다. 당신은 Qt로 그것을 할 수 없습니다. Windows에서는 PyWin32를 사용하여 WinApi 기능을 호출 할 수 있습니다. – Meefte