Как сделать эти графические интерфейсы старой школы (например, установщик debian / arch)


13

В последнее время я делал много установок, и по возможности я обычно выбираю текстовую установку из меню GRUB на Live CD. Большинство установщиков выглядит так:

введите описание изображения здесь

Я всегда думал, что эти графические интерфейсы (если их можно так назвать) были действительно потрясающими и легкими. Учитывая, что многие приложения / дистрибутивы используют их, это должна быть общая библиотека или что-то в этом роде? Есть ли способ, которым я могу сделать такие вещи?


Следует отметить, что у большинства системных установщиков для linux & bsd ужасная презентация пользовательского интерфейса с использованием проклятий относительно кнопок OK и Отмена: редко когда ясно, когда пользователь выделил их. При реализации с помощью curses лучше не использовать эти установщики в качестве примера проектирования; Вместо этого вернитесь, чтобы рассмотреть те старые программы для DOS, как Lotus 123, на предмет того, как хорошие графические интерфейсы ANSI должны работать с точки зрения пользовательского интерфейса. Это что-то вроде: [Ok] слегка окрашено, но не выделено, пока не выбрано пользователем.
Джонатан Клайн IEEE

Ответы:



14

Я не знаю об Arch и Debian, но часто эти графические интерфейсы создаются с использованием dialog(1)аргументов командной строки, а затем выводят диалог ncurses. Например, menuconfig ядра Linux выглядит так:

Снимок экрана menuconfig

Пример dialogиспользования:

$ dialog --title "Hello" --infobox "Hello there Unix and Linux Stack Exchange" 20 100

Что приводит к:

Скриншот диалога (1)


Это просто потрясающе, поэтому диалог использует ncurses для вывода на терминал? Не может быть проще, чем это. Спасибо
n0pe

8

На более высоком уровне те, которые выглядят именно так, обычно используют что-то вроде newt / whiptail или диалогового окна . Этот конкретный выглядит как тритон / хлыст, так как диалог имеет тенденцию рисовать рамку вокруг элементов управления, как этот список. В другом примере в конфигурации ядра Linux используется урезанная пользовательская версия диалога (без дополнительных функций он не используется, и я бы предположил, что флажок да / нет / модуль является пользовательской функцией)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.