Раньше было так, что в своем потоке на виджет рисовать нельзя. Сейчас так же?
Накидал простецкий пример (сильно не пинать)
#include <QApplication>
#include <QWidget>
#include <QThread>
#include <QSemaphore>
#include <QLabel>
#include <QPainter>
class MainWidget : public QWidget
{
public:
MainWidget(QWidget* parent = 0)
:QWidget(parent)
{
}
virtual ~MainWidget()
{
}
};
class QGThread : public QThread
{
public:
QGThread(QWidget* w)
{
pw = w;
}
void run()
{
QPainter p(pw);
p.drawLine(0,0,100,100);
}
private:
QWidget* pw;
};
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
MainWidget mw;
QGThread thread(&mw);
mw.show();
thread.start();
return app.exec();
};
в output выдало конечно:
QPainter::begin: Paint device returned engine == 0, type: 1
Развейте сомнения, сейчас по прежнему нельзя рисовать в виджете из другого потока? Или есть способ?
пс: про метод с рисованием в QImage, и потом его отрисовку знаю.