QT多线程操作qgraphicsview

电脑杂谈  发布时间:2020-06-30 06:25:51  来源:网络整理

qt多线程绘图_qt线程quit方法_qt 线程刷新界面

当前需求为100,000 Qpointf,然后在qgraphicsview中绘制. 数据为json文件格式. 为了实现这一想法,请使用多个线程读取数据qt多线程绘图,然后为每个点生成一个Item,然后通过additem添加该点. 在实现过程中读取数据没有问题,但是在添加数据时,子线程无法操作主线程,因此我更改了子线程以向主线程发送信号以进行绘制. 花了2分钟. 我创建了一个新的全球场景. 每个线程都去场景绘制图片,最后将场景发送到主线程. 结果报告我可能在附近发生了腐败.

qt 线程刷新界面_qt多线程绘图_qt线程quit方法

部分代码如下,您可以解决此问题或有新的想法qt多线程绘图,谢谢.

qt 线程刷新界面_qt线程quit方法_qt多线程绘图

此代码是1类cpp文件中的线程调用

qt线程quit方法_qt多线程绘图_qt 线程刷新界面

		QThreadPool pool;
pool.setMaxThreadCount(MaxSize);

//两个全局变量初始化
MygraphScene = new RoboGraphicsScene;
MythreadNum = 0;
for (int i = 0; i <= MaxSize; i++)
{
if (i == MaxSize)
{
//qDebug() << "!!!!!!!!!!Thread" + QString::number(i) + QString::number(EveryThreadNum * MaxSize)+ QString::number(PointArray.count());
pool.start(new MyRunnable(PointArray, EveryThreadNum * MaxSize, PointArray.count(), View, MygraphScene, 15));
break;
}
else
{
//qDebug() << "Thread" + QString::number(i)+ QString::number(i * EveryThreadNum) + QString::number(((i + 1) * EveryThreadNum) - 1);
pool.start(new MyRunnable(PointArray, i * EveryThreadNum, ((i + 1) * EveryThreadNum), View, MygraphScene));
}
}

qt 线程刷新界面_qt线程quit方法_qt多线程绘图

此代码写在QRunnable的QR文件中

//全局变量位置
static RoboGraphicsScene* MygraphScene;
static int MythreadNum;

问题点: 点

->


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-263243-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...