это подобъект QTread... и конкретизируйте его в основном потоке....
ошибка времени выполнения следующим образом:
Ошибка ASSERT в QCoreApplication::sendEvent: «Невозможно отправить события объектам, принадлежащим другому потоку. Текущий поток 176f0a8. Получатель» (типа «MainWindow») был создан в потоке 3976a0», файл c:\ndk_buildrepos\qt-desktop \src\corelib\kernel\qcoreapplication.cpp, строка 405 Недопустимый параметр, переданный в функцию времени выполнения C. В функцию времени выполнения C передан недопустимый параметр.
class PaintThread : public QThread {
private:
QWidget* parent;
public:
~PaintThread() {}
PaintThread(QWidget* parent = 0) {
this->parent = parent;
}
void run() {
while (1) {
this->msleep(5000);
parent->repaint();
}
this->exec();
}
};
это конструктор MainFrame:
MainWindow::MainWindow(QWidget *parent) :
QWidget(parent)
{
tankPoint = new QRect(50, 50, 30, 30);
this->show();
PaintThread * pt = new PaintThread(this);
pt->start();
}
далее следует переопределение paintEvent для MainWindow.
void paintEvent(QPaintEvent*) {
QPainter p(this);
p.setPen(Qt::red);
p.setBrush(Qt::red);
p.drawEllipse(*tankPoint);
tankPoint->setLeft(200);
}
Кто-нибудь может сказать мне, почему?