Библиотеки для отображения текстового режима меню? - PullRequest
3 голосов
/ 15 марта 2012

В игровом проекте, над которым я работал, меня серьезно замедлили - вплоть до отказа - из-за отсутствия библиотек, которые могли бы упростить процесс отображения меню в текстовом режиме(т.е. текстовое поле 80x25, собственный интерфейс command.com/cmd.exe).

Мне нужно что-то, что может дать список вариантов, в идеале включающий несколько страниц, и включающий значения, которые нужно ввести, чтобы выбрать один из этих;подсказать пользователю;осторожно упрекайте пользователя (возможно, звоните в колокольчик и перерисовывайте подсказку «выберите один:»), когда указанный пользователь не может ввести что-то действительное;и возвращает что-то, что может быть использовано для определения того, какая опция была передана.

Оказывается, это намного больше работы, чем кажется;и теперь тот же самый вопрос, который так сильно замедлял меня дома, возник (или вот-вот встанет) на работе.Кто-нибудь знает какие-либо библиотеки без авторского лева с функцией, которой можно передать контейнер для хранения опций, отобразить их на экране и получить выбор пользователя?

Ответ : Ncurses оченьподходит для этой цели, включая явное предоставление драйвера меню.Он имеет лицензию в стиле MIT, что делает его совместимым с коммерческим использованием.Тем не менее, он не доступен для MS-DOS или Windows.(Я ссылался на command.com выше, но не думал явно указать, что это вопрос архитектуры Microsoft.)

Однако, похоже, он был успешно скомпилирован в DOS и Windows вв прошлом, и я уверен, что смогу заставить его или, по крайней мере, те его части, которые мне нужны, работать, особенно если учесть, что это логика меню, а не рисование линий и т.п.после.Вопрос Хорошие ресурсы для написания приложений в стиле консоли для Windows? также должен быть полезен в этом отношении.

Позже, дополнительный ответ : Windows обеспечивает достаточное количество отображенияфункциональность из коробки, как показано здесь - хотя это не включает систему отображения меню, в отличие от ncurses.Нечестивый гибрид логики меню ncurses и Windows API?Это может быть столь же жизнеспособный выбор, как cygwin ...

Намного позже дополнительный ответ : и ncurses, и pdcurses работают очень гладко с Windows, даже без использования Windows API для чего-то большего, чем простои размер дисплея.Я остановился на использовании pdcurses и научился создавать собственные меню - с учетом обратных вызовов, легко расширяемой экранной очереди сообщений, использования строкового класса C ++ и других подобных функций.

Далееupdate : Библиотеки меню Curses написаны на C, поэтому работают в терминах последовательностей char *.Я перестал пытаться использовать их и вместо этого написал свои собственные меню, используя низкоуровневые функции проклятий для отображения на экране.

Ответы [ 3 ]

2 голосов
/ 15 марта 2012

Вы хотите ncurses. Обычно он устанавливается вместе с вашим дистрибутивом.

Это может быть немного болезненно, но это лучший из известных мне способов получить приличный графический интерфейс."в командной строке это не просто ввод символов + ввод.

1 голос
/ 15 марта 2012

Вы также можете проверить CDK , который требует ncurses и предоставляет окна, подобные виджетам.

1 голос
/ 15 марта 2012

Попробуйте ncurses, это на MIT лицензии, которая намного более разрешительна, чем GPL. Его очень просто использовать: меню, диалоговые окна, флажки - все это есть. Он управляется событиями, как и большинство библиотек с графическим интерфейсом.

...