Q_OBJECT
public:
MyShell(QTextEdit* output) : QObject(nullptr),
process(new QProcess()), m_output(output)
{
QObject::connect(process,
SIGNAL(readyRead()),
SLOT(PrintOutput()));
}
void start(const QString& params) const
{
process->start(params);
m_output->append("Starting " + params);
process->waitForReadyRead();
}
private:
QProcess* process;
QTextEdit* m_output;
Q_SLOT void PrintOutput()
{
while (process->canReadLine())
{
m_output->append(process->readLine());
}
QObject::connect(process,
SIGNAL(readyRead()),
SLOT(PrintOutput()));
process->waitForReadyRead();
}
};
Вот создаю процесс, потом хочу его стандартный аутпут к себе в текстовое многострочное поле перенести. И первая строка копируется, а потом тишина. Я уж всякие извращения пробовал, типа как в этом коде - повторно коннектить сигналы и слоты, но не работает. Может, есть у кого-то идеи?
А остальные строки точно с stdout?)
Обсуждают сегодня