2

QStandardItemModelQListViewにバインドするQt4アプリがあり、モデルはバックグラウンド/非UIスレッドから更新されています。UI以外のQThreadからQStandardItemModelを変更していますか?

QStandardItemsetText(..)メソッドがUI以外のスレッドから非常に頻繁に呼び出されると、アプリケーションがla dataChanged(..)ハンドラでクラッシュすることがあります。私はsetText("xxxxx")をforループで繰り返し呼び出すことで問題を再現できます。私のアプリでは、データはネットワークから読み込まれるので、別のUIスレッドでモデルを更新します。

これは共通の鉛ですか?私が正しく理解していれば、これはキューに入れられた接続に関連しており、QStandardItemModelはスレッドセーフではありませんか?この問題を回避するには?

ありがとうございます!

答えて

4

QStandardItemModelはQtGuiライブラリの一部ですが、iircのすべてのクラスはスレッドセーフではないとみなされます。データの実際の設定をGUIスレッドに移すと問題はありません。あなたは、ネットワークスレッドからのキューに入れられた信号を使用することで、それを簡単に行うことができます。

+0

それは私が一緒に行かなければならないオプションのように見えます。ありがとう! – Gant

関連する問題