2

我有 Qt4 应用程序,它绑定QStandardItemModelQListView并从后台/非 UI 线程更新模型。

有时,当从非 UI 线程非常重复地调用QStandardItem'方法时,应用程序将在 la dataChanged(..) 处理程序处崩溃。我可以通过在 for 循环中重复setText(..)调用来重现该问题。setText("xxxxx")在我的应用程序中,数据是从网络读取的,因此我在单独的非 UI 线程中更新模型。

这是普通的pb吗?如果我理解正确,这与排队连接有关并且QStandardItemModel不是线程安全的?如何解决这个问题?

谢谢!

4

1 回答 1

4

QStandardItemModel是 QtGui 库的一部分,iirc 中的所有类都被认为不是线程安全的。如果您将数据的实际设置移动到 GUI 线程中,您应该没问题。通过使用来自网络线程的排队信号,您可以很容易地做到这一点。

于 2010-12-11T12:48:46.527 回答