создание Progress Bar в окне приложения Qt

Всем привет. Проблема следующая.
Есть окно. При нажатию на кнопку в окне создаётся новый тред (QThreads), с помощью которого будет рассчитываться оставшееся время работы программы. Проблема в том, чтобы передать треду экземпляр формы, чтобы он смог с ней работать. На данный момент реализовано так:

main.cpp
#include <QtGui/QApplication>
#include "form.h"
#include "mythread.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Form w;
    MyThread tr;
    tr.f = w;
    w.show();
    return a.exec();
}

Таким образом, я хочу создать экземпляр класса - формы, экземпляр треда, передать треду экземпляр формы(в классе MyThread есть атрибут Form), чтобы при запуске данного треда он мог редактировать атрибуты формы...
Компилятор говорит:
в строке tr.f = w; не определна операция "=" для класса Form
Я так понимаю, что если я определю операцию "=", то в экземпляр треда передастся копия моей формы. Именно копия. Следовательно, я не смогу работать с отображаемой формой из треда. Я понимаю, что нужно как-то ввести глобальную переменную Form, чтобы она была видна везде, но как я не знаю. Пробовал тупо написать Form w; перед main и везде заинклудить main.cpp, но что-то не выходит.
Если вы не заснули и дочитали до сюда, помогите пожалуйста.

0
freeman1407 - 14 Август, 2010 - 16:06

Вы не можете использовать виджеты в потоках отличных от главного.
Как правильно реализовать логику почитайте здесь.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры