Russian Qt Forum

Qt => Общие вопросы => Тема начата: tux от Октябрь 21, 2020, 13:08



Название: Escape codes в Qt
Отправлено: tux от Октябрь 21, 2020, 13:08
Доброго времени суток.
Может быть кто нибудь видел пример кода (или вообще готовый код) для отображения escape codes в Qt? Не обязательно мультиплатформенно.


Название: Re: Escape codes в Qt
Отправлено: qate от Октябрь 21, 2020, 18:19
а что такое "escape codes" ?


Название: Re: Escape codes в Qt
Отправлено: tux от Октябрь 21, 2020, 19:15
https://ru.wikipedia.org/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B8%D0%B5_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_ANSI
Вручную просто долго и нудно реализовывать. Вдруг уже есть что-то готовое? Тем более, что им уже 100500 лет


Название: Re: Escape codes в Qt
Отправлено: Old от Октябрь 21, 2020, 19:17
Посмотрите исходники любого терминала, например konsole.


Название: Re: Escape codes в Qt
Отправлено: tux от Октябрь 21, 2020, 19:29
Посмотрите исходники любого терминала, например konsole.
Да я уже думал над этим. Просто тарбол того же konsole - это 1.2 мегабайта. Так то немного, но вдруг кто-то что-то видел уже готовое. В виде виджета. :)
Вдруг я просто при поисках что-то пропустил...
P.S. Оказывается, есть и виджет QTermWidget - надо поковырять. Метод "утёнка" таки работает :)


Название: Re: Escape codes в Qt
Отправлено: qate от Октябрь 21, 2020, 21:03
qtcreator в своей консоли поддерживает и отображает цветной вывод


Название: Re: Escape codes в Qt
Отправлено: tux от Октябрь 21, 2020, 21:06
qtcreator в своей консоли поддерживает и отображает цветной вывод
Не факт, что там именно escape. Тем более, что там может быть банальная подсветка. Или HTML, который Qt тоже вполне умеет


Название: Re: Escape codes в Qt
Отправлено: qate от Октябрь 22, 2020, 00:04
qDebug()<<"\033[37;1;41m Внимание \033[0m"; - выводит белым на красном фоне


Название: Re: Escape codes в Qt
Отправлено: tux от Октябрь 22, 2020, 00:49
С qDebug не всё так просто. Хотя ваш пример и работает.
Пока выбрал для себя QTermWidget. Не знаю, насколько корректно это работает в винде, но мне это неважно от слова "совсем". :)