多线程绘图方法:
在主线程类里面设置一个QPixmap指针,作为主要画布。
pixmap=new QPixmap(this->size());
pixmap->fill(Qt::white);
主类覆写paintEvent函数
void MainWindow::paintEvent(QPaintEvent *event){
QPainter painter(this);
painter.drawPixmap(0,0,*pixmap,0,0,0,0);
}
线程类同样设置QPixmap指针,并且在构造函数接收主线程画布指针
myThread::myThread(QPixmap *pixmap):
pixmap(pixmap)
{
}
线程类覆写run()方法,实时绘图
void myThread::run(){
int i=50;
while(i<100){
i++;
QPainter painter(pixmap);
painter.drawLine(100,i,200,i);
QThread::msleep(SLEEP_TIME_MS);
}
}
主线程启动子线程
myThread *m0=new myThread(pixmap);
QThreadP