Снова вопросы...)
Есть GUI и есть функция, которая очень долго считает. Хочу эту функцию запустить в отдельном потоке, чтобы можно было в GUI на кнопочки жмякать. Сделал наследника от QThread
ExtrThread::ExtrThread(curve *c, string p, QPushButton *b): QThread()
{
    cur = c;
    path = p;
    button = b;
    //run();
    moveToThread( this );
}
void ExtrThread::run(){
    isRuning = true;
    button->setText("Stop");
    qDebug()<<"Thread Start\n";
    core(cur, path);// моя функция, которую хочу запустить параллельно с GUI
    //system("cat /dev/random");
    button->setText("Run");
    qDebug()<<"Thread Stop\n";
    isRuning = false;
    exec();
        emit stopped();
}
ExtrThread *extr;
.........
extr = new ExtrThread(&cur, "opt.conf", ui->pushButton);
                extr->start();
При запуске ф-я считает, но окошко не реагирует на нажатия кнопок и пр. Если вместо моей ф-и записать system(«cat /dev/random»), то все ОК: окно ресайзится, кнопочки нажимаются, а в консоли бегут кракозябы.
Вопросы:
1. Почему с функцией так не получается?
2. моя ф-я из себя потом вызывает через system(...) внешнюю программу. Как мне можно перехватить вывод в консоль, чтобы его направить, к примеру, в QTextEdit?





