Ответ 1
Посмотрите curses. Это библиотека для текстового интерфейса.
Как сделать программу Linux в интерфейсе командной строки, которая отображает хороший пользовательский интерфейс?
Например, когда я использую "wget" для загрузки файла из Интернета, я могу видеть продвижение загрузки в интерфейсе командной строки. Как я могу это сделать?
Посмотрите curses. Это библиотека для текстового интерфейса.
ncurses - популярный вариант, есть API для множества языков программирования.
Вы можете получить базовый интерфейс, используя \r
, чтобы перейти к началу текущей строки.
Немного более продвинутый ncurses.
Следующий шаг вверх Newt.
Если вы хотите сделать GUI для скриптов Bash или обернуть другие утилиты командной строки, вы можете использовать dialog (справочная страница).
Здесь вы найдете два больших диалоговых учебника:
Я бы не назвал отчет о выполнении wget "хорошим gui", но в любом случае классическая библиотека для построения графических интерфейсов без X Windows - это системы Linux и UNIX ncurses.
Недавно была запущена версия ncurses на С#, посмотрите подробности здесь
Если вам нужен только индикатор выполнения, это можно сделать непосредственно с помощью простого print
(который печатает панель), за которым следует символ символ возврата каретки (символ ANSI # 13), который возвращает вас в начале строки. Затем эту строку можно обновить, распечатав поверх нее.
Для более сложных потребностей ncurses
действительно является стандартным способом.
Если вы используете Mono, вы можете использовать MonoCurses
Попробуйте curses, это хорошо документированный API для текстового интерфейса. Также существует так много проектов с открытым исходным кодом, которые используют проклятия для вас, и вы узнаете
wget действительно не имеет графического интерфейса, все, что я вижу, это материал, который вы уже можете достичь, используя stdout и echos (например, printf() или std:: cout)
В любом случае, для простых диалоговых окон типа MessageBox, но не ограничиваясь этим, также посмотрите диалог
Вы можете просто использовать escape-коды ANSI. Простой пример в bash
echo -e "\033[H\033[2J \033[20;20H \033[4mThis is a underlined line.\033[0m"