Как работают интерфейсы текстовых пользователей (TUI)?
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. Ответьте на свою целевую платформу разработки.