2

QListWidget (またはおそらく QListView/QListModel) で大量のデータを受信/表示する必要があるアプリケーションの作成を計画しています (私は代替案を受け入れています)。QListWidget は毎秒膨大な数 (+100) のアイテムを受け取ります。スクロールバーが使用されている場合は、これらのアイテムをすべて表示する必要があり、遅くない効果を実現したいと考えています。

Procmon を使用したことがある場合 (Windows のみ)、これは私が話していることの良い例です。

私の質問は次のとおりです。Qt はそれほど多くのデータを遅くすることなく処理できますか? どのような実装を念頭に置く必要がありますか?

4

2 に答える 2

2

代替案 1

QTextDocumentログを表示するには、またはも使用できますQTextEdit。実装はより単純で、おそらくオーバーヘッドも少なくなります。

これを と組み合わせるとQSyntaxHighlighter、非常に読みやすく使いやすいログ ストリームを作成できます。

代替案 2

データのある種のページングまたはグループ化を実装することもできます。これにより、最初または最新のデータに簡単にジャンプできます。

代替案 3

あなたが見ることができる別のアイデアは、ほとんどの人が一度に多くのデータを見ようとしないということです. 通話を集計して集計できます。

例えば:

State 1 abcd
State 1 abcd
State 1 abcd
State 1 abcd
State 2 efg

として表すことができます

State 1 abcd (x4)
State 2 efg (x1)

代替案 4

または、グラフィカルなアプローチを採用することもできます。表示している大量のデータに適した方法Qwtまたは方法を使用して、データのストリームを描画します。QGraphicsView

代替案 5

最後に、もう 1 つの便利な方法は、ハードドライブに書き込むことです。次に、ユーザーが現在のログ ファイルを見たい場合は、ボタンを用意します。

それが役立つことを願っています。

于 2013-03-27T17:11:47.257 に答える
2

小さなプロトタイプを作成して、パフォーマンスが十分かどうか試してみることをお勧めします。QListView は十分に高速であると言えます。実際、同様のログ ビューを使用して作業を行ったところ、QTableView が QListView よりも少し高速であることがわかりました。

ただし、リスト ビューが最適なユーザー インターフェイスであるかどうかも検討する必要があります。たとえば、リストに 100 万個の項目がある場合 (1 時間半後)、スクロール バーは役に立たなくなります。上下の矢印をクリックしない限り、細かいスクロールには使用できなくなりました。また、1 秒あたり 200 個の新しいアイテムを取得する場合、それらの新しい行を常に描画することはあまり役に立ちません。とにかく、ユーザーはそれらを読むことができません。

于 2013-03-27T15:41:53.737 に答える