我有一个主要的 GUI 类和另一个 Worker 类:第一个处理 GUI 事物(将 a 绘制QPixmap到 a 中QGraphicsScene),第二个处理计算事物(将QLines 和QPoints 绘制到 that 上QPixmap)。这两个类在两个不同的线程中运行。当我创建Worker线程时,我将 GUI 的地址传递QPixmap给Worker类,因此它们共享同一个对象。
在类QPixmap中修改,在Worker类中绘制GUI。即使我没有任何问题,我还是决定使用 a来确保我的程序在绘制时QMutex不会尝试访问。QPixmap现在,为了做到这一点,我QMutex在 GUI 类和类之间进行了共享Worker(Worker类又有一个指向 GUI 的指针QMutex)。QPixmap每当我阅读或修改QMutex.
这是一种有效的方法吗?到目前为止,我从未遇到过错误,但我想知道它在逻辑上是否正确以及 Qt 是否提供了更好的方法来实现这一点。
先感谢您。