nube: stdio для QTextedit - PullRequest
       3

nube: stdio для QTextedit

2 голосов
/ 04 июня 2011

Я читал много подобных тем, но я не настолько хороший программист, что могу понять все это.Я использую qtcreator, чтобы упростить жизнь, и хочу создать программу, которая может запускать другой процесс, отслеживать его стандартный вывод, а затем убивать его при необходимости.

То, что я хочу сделать, - это создать QTextedit в конструкторе и вставить в него сигнал, который обновляет содержащийся текст при обновлении потока, пока все хорошо, но там я становлюсь нечетким.Сначала я задумался о создании подкласса QObject, который запускает процесс как QProcess и всякий раз, когда stdout обновляет QObject и добавляет новые данные в поле QTextedit.

Таким образом, моя структура программы будет работать так:

при нажатии кнопки создать новый производный класс QObject.

Конструктор производного класса QObject запускает QProcess и подключает сигнал readyReadStdout () к слоту производного класса qObject.

Когда производныйQObject запускается, принимает readyReadStdout () и добавляет все новые данные в окно QTetEdit.

при нажатии кнопки вызывает вызываемый деструктор QObject, и это убивает процесс.

Кто-нибудь делал что-то подобное?Как я уже говорил, я читал похожие посты, но иногда требуется задать вопрос своими словами, чтобы понять его

Спасибо всем (также мой первый пост, woo:)


Итак, вот мое обновление:

Я добавил экземпляр класса QProcess (с именем proc) в мой класс mainWindow, а также новый экземпляр производного класса QObject (с именем procLog), в который я добавил слот.Я хочу, чтобы этот слот принял сигнал readyReadStandardOutput () в качестве триггера для вызова readAllStandardOutput () и отправил новую строку новому сигналу в procLog. У меня возникли проблемы с подключением слота QProcess к производному классу QObject.Вот что я пытаюсь:

connect(proc, SIGNAL(readyReadStandardOutput ()), procLog, SLOT(logReady()));

Я получаю, ошибка: QObject :: connect: Невозможно подключиться (null) :: readyReadStandardOutput () к (null) :: logReady ()

Знаете ли вы, почему это так.А есть ли способ добавить блоки кода к тексту в комментариях?

спасибо!

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