繁体   English   中英

QPixmap是可重入的吗?

[英]Is QPixmap reentrant?

我有一个程序需要加载很多 QPixmaps。 我使用QtConcurrent::mappedReduced将像素图的加载分为几个作业(实际上是加载了一堆QGraphicPixmapItem )。 加载函数调用QPixmap s / QGraphicItem的构造函数,它不会尝试执行任何绘制,并且直到加载完成后才与世界其他地区通信(至少通过我的代码)。

我在初始化过程中发生了一些随机崩溃(例如1%的时间) ,并且helgrind抱怨从QPixmap和主事件循环对QApplication无保护访问,但是众所周知,Qt互斥锁通常不能与valgrind很好地混合使用,因此可能是假阳性。

像往常一样,Qt文档对于QPixmap是否可重入还不清楚,这基本上就是我的问题。

好吧,您会当机,然后问是否可以? 您已经知道答案了。 不好

我在这里看到的唯一问题是它是否是Qt错误。 不,这不对。

如果要加载很多像素图,请将其加载到QImages ,然后将其转换为后备存储格式。 这些天,通过在图像上使用像素图并没有太多收获。 只要图像与窗口小部件的后备存储(播放到QImage )具有相同的格式,您就会具有相同的性能。 当Qt仍使用本机绘画时, QPixmap区别QPixmap意义。 在Windows和OS X上,像素图只是格式正确的QImage

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM