我有一个特定的目标:画一个路网。所以我有很多点(x,y),我想连接它们(使用 drawLine 函数)。因为他们的数量(大约 2-3 百万)我需要在另一个线程中做,所以我应该怎么做?我有一个特殊的绘图区——QLabel。我试图通过主线程中的 QPixmap 来完成它,一切都很好,但是当我尝试通过另一个线程中的信号/插槽来完成它时,没有图像出现:(
实际上,当我将坐标转换为 GUI 坐标时,它们会变成小数,所以我不知道如何绘制它们,因为 drawLine 函数具有整数参数:(int x1, int y1, int x2, int y2)。
这就是我创建另一个线程的方式(我只需要运行一个函数,所以这是我认为的最佳方式)
QtConcurrent::run(this,&MainWindow::parseXML)
希望你能帮助我,因为我会发疯 %)
PS我读过多线程绘图不支持QPixmap。所以现在我不知道该怎么做。
QPainter can be used in a thread to paint onto QImage, QPrinter, and QPicture paint devices. Painting onto QPixmaps and QWidgets is not supported. On Mac OS X the automatic progress dialog will not be displayed if you are printing from outside the GUI thread.