2010-01-20 3 views
8

Я ищу, чтобы добавить элемент в мой графический интерфейс wxWidgets, который ведет себя как эмулятор терминала. Не в терминах оболочки, которая выполняет команды, а только для настройки ввода-вывода приложения, работающего в терминале.Терминальное окно для wxWidgets?

В принципе, требования:

Потоковый ввод/вывод: При вводе символа он добавляется к входному потоку, и когда-то поступает на терминал, он печатает сразу.

Нет редактирования: после ввода символа он постоянно присутствует, поскольку он, вероятно, был использован приложением, запущенным в терминале.

Простейшая прокрутка (даже если она просто показывает несколько строк или что-то еще).

Было бы неплохо, если что-то уже делает это, но предложения о том, как реализовать это с уже существующими элементами управления, такими как wxTextCtrl, также приветствуются.

+0

Джереми, если бы это был ваш ответ https://github.com/jeremysalwen/TerminalWx - не стоит ли отвечать на него? Меня интересует текущее состояние вашего компонента. Последние изменения были в декабре 2013 года, последний (и только) выпуск в 2012 году ... – Wolf

ответ

3

Я знаю, что это на пару недель поздно, но, надеюсь, это по-прежнему полезно. У меня есть проект под названием Chameleon, который использует виджет терминалов VT100 на основе wxWidgets, который сам был основан на проекте под названием taTelnet. Источник Chameleon доступен на моем сайте (download page here). Не уверен, что это именно то, что вы ищете, но это может дать вам некоторые идеи. Не стесняйтесь, дайте мне знать, если у вас есть какие-либо вопросы по этому поводу.

+0

Спасибо, это * точно *, что я ищу! Я рассмотрю его и задам вам любые вопросы, которые могут возникнуть у меня. –

+0

Примечание: исходный код находится в плоской структуре каталогов, но проект ожидает, что он будет в папках. –

+0

Хм. Возможно, я допустил ошибку, когда я ее застегнул. Спасибо за уведомление. – markerikson

2

wxWidgets поддерживает перенаправление STDOUT на wxTextCtrl через wxStreamToTextRedirector. Что касается ввода, вы можете переопределить событие OnChar в классе wxTextCtrl, чтобы справиться с этим.