информацию о состоянии вычислений третьего потока нужно вывести на progressBar формы.
я использую сигнально слотовые соединения т.е
запускаю первый поток:
void MainWindow::on_pushButton_clicked()
{
ThMain_1 *MAIN_1 = new ThMain_1;
MAIN_1->start();
connect(MAIN_1,SIGNAL(progress_th_2(int)),this,SLOT(on_progressBar_2_valueChanged(int)));
}
void MainWindow::on_progressBar_2_valueChanged(int value)
{
ui->progressBar_2->setValue(value);
}
запускаю второй поток:
void ThMain_1::run()
{
ThSub_1 *THSUB_1 = new ThSub_1;
THSUB_1->start();
connect(THSUB_1,SIGNAL(progress_th_2(int)),this,SLOT(SetProgress_th_2(int)));
}
void ThMain_1::SetProgress_th_2(int progress)
{
emit progress_th_2(progress);
}
запускаю третий поток
void ThSub_1::run()
{
th_2 *TH_2 = new th_2;
TH_2->start();
connect(TH_2,SIGNAL(progress_2(int)),this,SLOT(SetProgress_th_2(int)))
}
void ThSub_1::SetProgress_th_2(int progress)
{
emit progress_th_2(progress);
}
произвожу в третьем потоке вычисления
void th_2::run()
{
int __progress=0;
double _result=0;
for (int i=0; i<=199800; i++)
{
_result+=cos(atan(i));
if (i%1998==0)
{
emit progress_2(++__progress);
}
}
}
и посылаю состояние вычислений через все потоки в форму.
но почему то не работает. Подскажите, в чем может быть поблема-ошибка.