История изменений
Исправление KennyMinigun, (текущая версия) :
Еще есть такая штука, что STDOUT у процесса обычно буферизированный (построчно). Что тебе надо — non-blocking io + popen. Наверное в Qt есть какие-нибудь обертки над этим.
В любом случае, ждать в потоке GUI, как у тебя в коде:
void MainWindow::nashSlot()
{
// ...
proc.waitForFinished();
// ...
}
Как сказал выше ZweiStein QProcess::readAllStandardOutput() — похоже на non-blocking io. А QProcess::run() — обертка над popen (и другими системными вызовами).
Исправление KennyMinigun, :
Еще есть такая штука, что STDOUT у процесса обычно буферизированный (построчно). Что тебе надо — non-blocking io + popen. Наверное в Qt есть какие-нибудь обертки над этим.
В любом случае, ждать в потоке GUI, как у тебя в коде:
void MainWindow::nashSlot()
{
// ...
proc.waitForFinished();
// ...
}
Как сказал выше ZweiSten QProcess::readAllStandardOutput() — похоже на non-blocking io. А QProcess::run() — обертка над popen (и другими системными вызовами).
Исправление KennyMinigun, :
Еще есть такая штука, что STDOUT у процесса обычно буферизированный (построчно). Что тебе надо — non-blocking io + popen. Наверное в Qt есть какие-нибудь обертки над этим.
В любом случае, ждать в потоке GUI, как у тебя в коде:
void MainWindow::nashSlot()
{
// ...
proc.waitForFinished();
// ...
}
Исправление KennyMinigun, :
Еще есть такая штука, что STDOUT у процесса обычно буферизированный (построчно). Что тебе надо — non-blocking io + popen. Наверное в Qt есть какие-нибудь обертки над этим.
В любом случаеь ждать в потоке GUI, как у тебя в коде:
void MainWindow::nashSlot()
{
// ...
proc.waitForFinished();
// ...
}
Исходная версия KennyMinigun, :
Еще есть такая штука, что STDOUT у процесса обычно буферизированный (построчно). Что тебе надо — non-blocking io + popen. Наверное в Qt есть какие-нибудь обертки над этим.
В любом случае — ждать в потоке GUI, как у тебя в коде:
void MainWindow::nashSlot()
{
// ...
proc.waitForFinished();
// ...
}