GTK +에서 키보드 및 마우스 입력을 받고 싶습니다. 키보드 입력의 경우 accelgroup을 사용해 보았지만 SDL 또는 SFML처럼 부드럽지 않았습니다. 열쇠를 눌렀을 때. 응답하고 잠시 멈추고 다시 응답하고 잠시 멈추었습니다. 마우스 입력이란 주어진 시간에 마우스의 위치를 얻고 마우스 버튼을 클릭했는지 여부를 의미합니다. 키보드 입력에 의해 키 누름과 릴리즈를 추적하고 싶습니다. 나는 Educational Graphics Program을 위해 GTK +와 cairo를 사용하고 있습니다. 종류의 거북이 그래픽. 어떤 도움? 또는 GTK + 및 키보드 및 마우스 입력을 추적하는 제 3 자 라이브러리 (C 또는 C++)?GTK에서 키보드 및 마우스 입력을 얻으려면 어떻게해야합니까?
답변
. 특히
http://developer.gnome.org/gtk-tutorial/2.90/x344.html
과에서
http://developer.gnome.org/gtk-tutorial/2.90/
과를 살펴 보자
http://developer.gnome.org/gtk-tutorial/2.90/c2422.html
두 번째 링크는 당신이 원하는 것을 할 것 같다 키보드 콜백에 대한 소스 코드가 있습니다. 세 번째 링크는 마우스를 사용하는 간단한 그리기 프로그램에 대한 자습서의 시작입니다.
편집 : gtkglext 라이브러리는 GTK +에서 OpenGL을 사용할 수 있도록 지원합니다. 당신은 게임 프로그래밍 라이브러리를보고해야처럼 내가 GTK는이 작업에 대한 잘못된 도구가 될 수 있다고 생각
음, gtkglext는 Gtk2 만 언급 할 수 있습니다. Gtk2는 더 이상 유지 관리되지 않으며 ApprenticeHacker는 Gtk3을 사용 중일 수 있습니다. [GtkGLArea] (https://developer.gnome.org/gtk3/stable/GtkGLArea.html)는 Gtk에서 GL을 사용하기 위해 현재 유지 관리되고있는 방법입니다. – theGtknerd
문서에 따르면 1 마우스 모션 이벤트를 GDK_POINTER_MOTION_MASK
마스크로 설정하면 해당 버튼을 누르지 않아도 모션 이벤트가 발생합니다. 또한, Gtk+ tutorials은 마우스 모션 이벤트를 활용한다는 개념을 보여줍니다.
키를 눌렀을 때. 응답하고 잠시 멈추고 다시 응답하고 잠시 멈추었습니다.
이게 무슨 뜻인가요? 나는 당신이 'A'를 눌러를 개최 할 때, 당신은 'aaaaaaaaaaaaa'를 얻을 키 반복 동작 (텍스트 편집기에서와 같은을 설명하는 생각 To disable it in your app :. 당신이 원하는 것은 적당히 복잡
XKeyboardControl control;
control.auto_repeat_mode = 0;
gdk_error_trap_push();
XChangeKeyboardControl (GDK_DISPLAY(), KBAutoRepeatMode, &control);
gdk_error_trap_pop();
이것은 SFML 및 SDL 에서처럼 키 반복이 일관성이 없음을 의미합니다. SDL에서 스프라이트를 움직이면 키를 놓을 때까지 isKeyPressed()가 항상 true로 평가되기 때문에 균일하게 이동합니다. 그러나 GTK +에서 키를 누르면 스프라이트가 움직이며 초 단위로 정지 한 다음 다시 이동하고 정지 한 다음 이동합니다. 즉 isKeyPressed()는 true, false, 그리고 true로 평가됩니다. 마이크로 초 동안 거짓, 그 다음 다시 참. 죄송합니다. 설명하기가 어렵습니다. – ApprenticeHacker
- 1. JSpinner의 키보드 및 마우스 입력을 비활성화하려면 어떻게합니까?
- 2. 키보드 및 마우스 비활성화
- 3. Winform에서 키보드 입력을 읽으려면 어떻게해야합니까?
- 4. 키보드, 마우스 입력을 무시하고 SendInput을 전달하십시오.
- 5. NASM에서 사용자 입력을 얻으려면 어떻게해야합니까?
- 6. 자구로 사용자 입력을 얻으려면 어떻게해야합니까?
- 7. 양식에서 사용자 입력을 얻으려면 어떻게해야합니까?
- 8. 마우스 및 키보드 입력을 트래핑하는 Windows 이벤트를 알고있는 사람이 있습니까?
- 9. WinForms 앱에 대한 모든 키보드 및 마우스 입력을 차단하려면 어떻게합니까?
- 10. JavaScript로 마우스 위치를 얻으려면 어떻게해야합니까?
- 11. DefaultMutableTreeNode에서 마우스 수신기를 얻으려면 어떻게해야합니까?
- 12. 네트워크를 통해 마우스/키보드 입력을 다른 피어로 보내는 방법은 무엇입니까?
- 13. 자바 스크립트에서 콘솔 입력을 얻으려면 어떻게해야합니까?
- 14. Java에서 여러 개의 마우스 입력을 처리하려면 어떻게해야합니까?
- 15. Windows 7에서 활성 창이 아닌 게임에 키보드 및 마우스 입력을 보내려면 어떻게해야합니까?
- 16. 마우스/키보드 입력 리디렉션
- 17. VB.NET 키보드 및 마우스 비활성화
- 18. 마우스 및 키보드 이벤트 보내기
- 19. 키보드 입력을 문자열로 읽으려면 어떻게해야합니까? (C++)
- 20. jQuery : 일반 키보드 입력을 수신하려면 어떻게해야합니까?
- 21. Google Closure에서 현재 마우스 위치를 얻으려면 어떻게해야합니까?
- 22. BlockInput을 사용하여 키보드 및 마우스 입력 차단
- 23. 자바에서는 저주처럼 콘솔에서 사용자 입력을 얻으려면 어떻게해야합니까?
- 24. Python에서 변수를 참조하도록 사용자 입력을 얻으려면 어떻게해야합니까?
- 25. GNU Octave의 키보드에서 사용자 입력을 얻으려면 어떻게해야합니까?
- 26. Mac OSX에서 키보드 키 상태를 얻으려면 어떻게해야합니까?
- 27. 마지막 키보드 활성 및 마우스 동작
- 28. three.js로 마우스 오버시 이미지 좌표를 얻으려면 어떻게해야합니까?
- 29. LLMHF_INJECTED 플래그를 트리거하지 않고 마우스/키보드 입력을 보내려면 어떻게합니까?
- 30. JVM이 시스템에서 마우스 클릭과 키보드 입력을 잠글 수있는 원인은 무엇입니까?
를 참조하십시오 ... 소리가 난다. – ptomato
@DeadMG 태그 죄송합니다. 제 3 자 _C_ 또는 _C++ _ 라이브러리를 언급 한 이후 C++ 및 C 태그가 포함되어야한다고 생각했습니다. – ApprenticeHacker
이 프로젝트에 너무 열심이 없다면 Qt를 살펴볼 수 있습니다. 그것을 게임 엔진으로 활용하면 아무런 문제가 없습니다. – RushPL