Как я создаю упрощенные подобные окну элементы в программе командной строки?

Когда я выполняюсь sudo dpkg-reconfigure lightdm в терминале я вижу упрощенный подобный окну listmenu. Существует ли способ сделать что-то как этот в C++?

Это смотрит что-то как:
enter image description here

4
задан 26 August 2014 в 21:02

1 ответ

Основанный на тексте подобный окну интерфейс, содержавший в терминале, который Вы видите, когда Вы работаете sudo dpkg-reconfigure lightdm кодируется, пользуясь ncurses библиотекой. Таким образом, если Вы хотите, чтобы Ваша программа обеспечила интерфейс, который похож на это, можно использовать ncurses также.

Для создания программного обеспечения с помощью ncurses в Ubuntu необходимо получить соответствующий пакет заголовочных файлов. Если Вы не кросс-скомпилируете, это будет:

  • Для программ с помощью традиционных строк, где большинство символов представлено единственным байтом (например, UTF-8), libncurses5 использованияInstall libncurses5.

    Это, вероятно, что Вы хотите, если Ваши строки являются массивами char (в C и других языках на базе С) или std::string (в C++).

  • Для программ, требующих поддержки широкого символа, используйте libncursesw5Install libncursesw5.

    Вам особенно будет нужно это, если Ваши строки будут массивами wchar_t (в C и других языках на базе С) или std::wstring, std::u16string, или std::u32string (в C++).

Дополнительно, для справки, отлаживающей Вашу программу, Вы могли бы также хотеть отладочные символы (для отладчиков, таких как gdb). Для этого, установка libncurses5-dbgInstall libncurses5-dbg или libncursesw5-dbgInstall libncursesw5-dbg также.

См. также ncurses на странице Ubuntu на Панели запуска, которая содержит список главных ncurses пакетов в Ubuntu, а также информации о версии для каждого в настоящее время поддерживаемого релиза Ubuntu.

Когда Вы создаете свою программу с GCC (например, с gcc или g++ команды), дайте ему аргумент -lncurses или -lncursesw, обычно в самом конце команды. Это связывает Вашу программу с ncurses библиотекой. Например:

g++ -Wall -g -o hello hello.cpp -lncurses

Это компилирует hello.cpp для создания исполняемого файла с отладочными символами (-g), названный привет (-o hello), при предупреждении о большинстве вещей Вы могли бы хотеть предупреждение о (-Wall), и связывая с постоянным клиентом (не широкий символ) ncurses библиотеку (-lncurses).

5
ответ дан 17 November 2019 в 14:28

Другие вопросы по тегам:

Похожие вопросы: