QTableView/QTreeview の更新の遅さを 2 つの場所に分離しました。
QStyledItemDelegate::paint()
Q_EMIT dataChanged()
私は多くのことを試しましたが、モデルのデータ メソッドは事実上何もせず、文字列を返すようにしました。列が少ない場合 (10 以下など)、GUI は非常に鮮明です。私のエンド ユーザーは 2560x1600 の巨大なモニターを持っており、50 を超える列と行を表示できるビューを最大化するのが好きで、GUI がいかに遅いかについて常に不満を言っています。モデルが完全に設定されると、挿入も削除もありません。私が行っているのはdataChanged()
、合理的な速度で新しい更新を取得し、行ごとに 1 秒あたり 2 回、1 秒あたり約 48 ~ 100 行の更新を発行することだけです。
グラフィック システムを OpenGL に切り替えてみましたが、役に立ちません。
dataChanged()
私のCPU使用率だけをコメントアウトすると、約16%ですQStyledItemDelegate::paint()
私のCPU使用率だけをコメントアウトすると約30%です- すべてを有効にして実行すると、100% になります
これらの統計に基づいて、遅さは何らかの形で Qt に関連していると思います。これを修正する魔法の設定はありますか?