Я читал много подобных тем, но я не настолько хороший программист, что могу понять все это.Я использую 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 ()
Знаете ли вы, почему это так.А есть ли способ добавить блоки кода к тексту в комментариях?
спасибо!