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

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

Это выглядит примерно так:
введите описание здесь

1 ответ

Решение

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

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

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

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

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

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

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

См. Также страницу ncurses в Ubuntu на Launchpad, которая содержит список основных пакетов 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).

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