Чтение клавиш со стрелками с C ++

0

Я пишу приложение C++ и должен читать, если нажата клавиша со стрелкой или нет. Я нашел только некоторые функции, которые работают только в Windows.

  • 0
    Вы хотите поймать клавиши со стрелками в Xcode или в вашем приложении?
  • 0
    Я должен использовать ввод клавиши со стрелкой в методе.
Показать ещё 5 комментариев
Теги:
arrow-keys

2 ответа

1

Как вы говорите, вы только нашли материал для Windows, я предполагаю, что вы ищете Linux-Unix. Старые динозавры, подобные мне, помнят время, когда у нас были только настоящие консоли (только клавиатура и дисплей 80х25). И в эти ранние времена существовали низкоуровневые библиотеки для интерпретации клавиатурных передаваемых ключей и позиционирования курсора на экране практически на любом терминале, а на более высоких уровнях для использования экрана в качестве графического интерфейса (только для текста).

Вы должны искать curses или ncurses для библиотек высокого уровня и terminfo для низкоуровневых возможностей.

1

У вас есть такая проблема, потому что вы просто задаете неправильный вопрос. Если приложение является инструментом командной строки и доступно из терминала, то просто невозможно узнать, какие клавиши нажаты в данный момент, потому что терминал может находиться далеко от машины, на которой работает ваше приложение, и что более важно, есть нет причины, по которой терминал посылает вам клавиши со стрелкой, потому что терминал может использовать их для текстовой навигации.

Таким образом, вы можете найти, как заставить терминал отправлять вам нажатия клавиш. Не каждый терминал будет поддерживать его, но, я думаю, большинство современных терминалов в современной ОС.

Если у вас есть приложение gui, предназначенное для локального использования и предполагающее, что вы управляете им с клавиатуры, подключенной к сети. Вместо этого вы должны искать документацию для своего инструментария gui. (Qt, wxWidgets, raw xorg, API окон и т.д.)

Таким образом, для этой проблемы нет собственного C++ решения, потому что у вас вопрос не имеет смысла во многих ситуациях.

Таким образом, вы можете использовать некоторую консольную библиотеку, такую как ncurses или gui toolkit, например Qt или искать собственное решение в вашей конкретной ситуации, но не ожидайте, что этот последний способ будет работать без какого-либо дополнительного кода на других машинах.

Или просто найдите другие библиотеки, которые позволят вам это сделать.

  • 1
    Я бы никогда не подумал, что такие программы, как vi и старый добрый терминал vt-100 можно назвать современными в 21 веке :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню