Как работают интерфейсы текстовых пользователей (TUI)?

softwareengineering.stackexchange https://softwareengineering.stackexchange.com/questions/22623

  •  22-10-2019
  •  | 
  •  

Вопрос

Недавно я был назначен на порт старой программы COBOL. Я привык к GUI, и я не могу понять, как работает TUI. Я много искал через Google, но не смог что -то найти.

Я знал, что приложения консоли могут выводить линию по линии, но как цвета и т. Д. Притягиваются на экране терминала? Как все это нарисуется? Поддерживают ли терминалы это как -то? Есть стандарт? Я действительно запутался.

Это было полезно?

Решение

Уверен, что ваш ответ будет варьироваться в зависимости от платформы здесь. Существует много различных типов терминалов/консоли и для многих более чем одного стандарта для написания. Большинство из них, которых я видел, использует какую -то последовательность побега (Ex: Ansi char выходит для DOS, YMMV), где вы отправляете специальный побег, чтобы прервать написание на экран, тогда вы можете переместить курсор, изменить цвета и т. Д.

Если вы пишете что -то буквально для тупых терминалов, то, вероятно, будет использовать что -то вроде https://secure.wikimedia.org/wikipedia/en/wiki/ncurses

Другие советы

Общий термин для такого рода интерфейса - «командная строка». Вы, вероятно, сделаете для этого лучше, чем для «текстового пользовательского интерфейса».

Не волнуйтесь, есть сотни стандартов на выбор :)

Я, к сожалению, более комфортно с приложениями на основе текста и консолей, чем их более старые графические окна. Слишком много дней на Fidonet, я боюсь.

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

Библиотеки, такие как проклятия Оберните эти коды управления (и многие другие коды терминалов стиля) и абстрагируйте их, чтобы пользователи могли входить через свои терминалы. Такие вещи, как VT100, могут даже делать удаленную (местную) печать, с которой мы все еще боремся сегодня в RDP.

Чтобы усугубить вещи для вас, IBM Systems использует не линейные или элементы управления, а протоколы на основе экрана и блоков. Примерами являются 3270 а также 5250 Терминальные протоколы, которые из -за отсутствия лучшего сравнения в запросе | Архитектура ответов, думайте http. Как бы это ни было, они являются настоящим питамом для работы и должны быть их собственным отдельным вопросом.

Хуже всего, чем это было бы написание консольного приложения в мире DOS/Windows. Ответьте на свою целевую платформу разработки.

Лицензировано под: CC-BY-SA с атрибуция
scroll top