Khi cố gắng lấy đầu vào từ các phím mũi tên qua các lời nguyền (ncurses) nó sẽ không bị bắt như KEY_UP v.v. Tôi đã sử dụng chức năng bàn phím với đối số đúng nhưng getch vẫn trả về chuỗi thoát. Làm thế nào để tôi sàng lọc thông qua các giá trị trả về bởi getch() và lấy các phím mũi tên đặc biệt?Curses nhận các phím mũi tên
15
A
Trả lời
13
Tôi đã lưu trữ getch()
gọi là char's khi chúng được cho là int's. Hoạt động hoàn hảo sau khi chuyển đổi.
5
Thiết bị đầu cuối tiêu chuẩn (giống như VT100) gửi một chuỗi ký tự khi nhấn các phím mũi tên. Bạn chỉ cần theo dõi xem các chuỗi này có được nhấn theo thứ tự hay không. Dưới đây là các char để xem cho:
Down Arrow 0x1B 0x5B 0x42
Left Arrow 0x1B 0x5B 0x44
Right Arrow 0x1B 0x5B 0x43
Up Arrow 0x1B 0x5B 0x41
11
tôi thấy cùng một vấn đề trên Mac OS X. Nhưng nó đã được giải quyết bằng cách thêm những điều sau đây:
keypad(stdscr, TRUE);
+2
Tuy nhiên, OP đã tuyên bố rằng điều này đã không làm việc cho anh ta. – augurar
Các vấn đề liên quan
- 1. Cắt các phím mũi tên
- 2. Lấy các phím mũi tên từ cin
- 3. Scroll div với các phím mũi tên
- 4. ngăn di chuyển bằng các phím mũi tên
- 5. Các phím mũi tên vi vi trong chế độ chèn
- 6. cách di chuyển div bằng các phím mũi tên
- 7. Tự động hoàn thành JTextField và các phím mũi tên
- 8. vim: cách chỉ định các phím mũi tên
- 9. Cách nắm bắt các phím mũi tên trong node.js
- 10. Javascript: Sự kiện Keydown: Phím mũi tên "Lên" ngăn chặn các phím mũi tên tiếp theo Các sự kiện quan trọng? (đã trả lời: bàn phím bóng mờ)
- 11. Phát hiện xem trình duyệt có các phím mũi tên/bàn phím trong trang web không
- 12. Cuộn qua một `wx.ScrolledPanel` bằng các phím chuột và phím mũi tên
- 13. phím mũi tên không hoạt động trong sqlplus
- 14. HorizontalScrollView với các mũi tên
- 15. jqGrid - Điều hướng các hàng bằng các phím mũi tên lên/xuống?
- 16. Có thể sử dụng các phím mũi tên trong trình thông dịch OCaml không?
- 17. iTerm2 nhận lệnh DIFFERENT trước đó bằng cách sử dụng các phím mũi tên lên và xuống
- 18. Làm thế nào để sử dụng các phím mũi tên trong REPL mzscheme/guile?
- 19. mã và mã mũi tên
- 20. Lịch sử chế độ tương tác của Python và các phím mũi tên
- 21. Làm cách nào để xử lý các phím mũi tên trong tập lệnh Perl trong Cygwin?
- 22. HTML5 Canvas: Di chuyển/panning thế giới bằng các phím mũi tên trong EaselJS
- 23. Thêm phím xóa và phím mũi tên vào Cụm từ thông dụng
- 24. Tại sao các phím mũi tên của tôi bị kẹt? CodeRush/VS2010
- 25. Điều hướng qua danh sách bằng các phím mũi tên? (JavaScript/JQ)
- 26. Làm cách nào để gửi các phím bấm mũi tên tới quy trình sử dụng Expect.pm
- 27. Thay đổi tiêu điểm bằng các phím mũi tên trong JavaScript
- 28. Làm cách nào để tôi có thể trả lời các phím mũi tên bàn phím bên ngoài?
- 29. Giải thích về các mũi tên UML
- 30. Vẽ các mũi tên với gnuplot
Có thoát khỏi mã bạn có thể nhập như một tổ hợp phím hoặc dãy sử dụng Ctrl cho những? –
Không cần; bạn có thể nhập trực tiếp. 0x1B = esc, 0x5B = [, và 0x41 - 0x44 = A - D. Loại esc [D trong terminal của bạn, và con trỏ di chuyển sang trái. –
Cách tiếp cận này khá nhiều hoàn toàn đánh bại toàn bộ mục đích làm việc với thư viện nguyền rủa ở nơi đầu tiên :-) –