Как перенаправить вывод консоли в GUI в Qt на платформе Linux - PullRequest
1 голос
/ 12 мая 2011

Я делаю проект, называемый «сниффинг пакетов», который работает, как например, etherial.it перехватывает и отображает весь пакет, поступающий на хост.для разработки этого проекта я работаю на платформе linux и использую QT для его разработки. Просто помогите мне решить следующие проблемымой графический интерфейсэто возможно.

Ответы [ 2 ]

1 голос
/ 12 мая 2011

Извините, чтобы не быть точным, у меня нет справочного материала передо мной. Я недавно сделал именно это, это довольно просто. Используйте QProcess для запуска анализатора пакетов, а затем создайте слот для обработки сигнала ReadyRead (?). Слот ReadyRead может затем прочитать stdout и stderr из процесса и поместить вывод в GUI.

0 голосов
/ 12 мая 2011

Если вы передаете вывод std внешней программы в вашу программу Qt, вы можете использовать QTextStream и присоединить его к вашему stdin (см. docs ).

Оттуда вы можете передать объект QTextStream вокруг вашей программы и извлечь входные данные с помощью QTextStream :: readLine (), добавив строки в ваш (например) QTextEdit.

Я не знаю, сработает ли это, но вы можете даже получить QIODevice из QTextStream :: device () и затем подключить сигналы QIODevice :: readyRead () к своим собственным слотам, чтобы сделать все асинхронным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...