問題タブ [qstandarditem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
299 参照

qt - QStandardItemModel を混在させる方法

以下の画像AのようにQStandardItemModelを使用してTreeViewを作成しました

ここに画像の説明を入力

また、以下の画像 Bのような QStandardItemModel もあります

ここで、2 つのモデルを組み合わせて、TreeView の新しいモデルを作成します。 ここに画像の説明を入力

new TreeView は以下の画像 Cのようになります:

ここに画像の説明を入力

例:

fileTree は TreeView 画像 A のモデルです。

zipTree は TreeView イメージ B のモデルです。

それらを混ぜて TreeView 画像 C の fullTree を作る方法。

アップデート:

3つのデータには両方のモデルがあり、データのみが異なります。写真 C のデータをフォーム A + B にマージしたい。ファイル a.zip -> フォルダ a. (画像B)のファイルリストを新しいフォルダ(a)に追加します

P/S: QfileSystemModel を使用しないでください

0 投票する
1 に答える
497 参照

c++ - QStandardItemModel のアイテムの割り当て解除

スタックに割り当てられた が破棄されると、モデル内のポインタが指しているオブジェクト (たとえば、次の例の/ポインタ)QStandardItemModelはどうなりますか?itemitem2

このコンテキストでは、私が正しく理解していれば、モデルの行は N 個の値で構成され、その行の各値は として表されQStandardItemます。これは、上記の「リスト」オブジェクトが 2 つの値 (列) を持つ 1 つの行であることを意味します。

model.setData()これは、 を使用しmodel.setRowCount()て手動で座標を追跡するよりも良いですか、悪いですか?

完全なコンテキストが必要な場合は、ここにあります。アイデアは、手動でQSqlQuery結果をループし、行をチャンクでフェッチすることです。関連するメソッドは と呼ばれloadChunkます。

モデルがスタックに割り当てられている場合、モデルにロードされたアイテムの割り当て解除を何らかの形で管理する必要がありますかaddRow()

TLDR; モデルがスタックに割り当てられているときにモデルがメモリをリークしないようにする方法はありますが、ヒープ上のオブジェクトへのポインタがたくさん含まれていますか?

0 投票する
1 に答える
563 参照

c++ - QStandardItem の高さを計算する方法はありますか?

QListView から拡張された展開可能な ListView を作成しました。ヘッダー データ (展開されていないアイテム) を表示したいだけの場合はすべてうまく機能します。ハードコードされた高さ 64 を指定したためです。展開すると詳細が表示されます。アイテム。しかし、問題は、詳細が 1 行以上になる可能性があるため、詳細の正確な高さがわからないことです。アイテムの内容に応じてアイテムの高さを合わせたいと考えています。

アイテムの展開または折りたたみ時にクリック リスナーを処理するコードは次のとおりです。

問題は、アイテムが展開されたときの高さを計算する方法です。

結果:

ここに画像の説明を入力

編集:

sizeHint()内のコードです

残念ながら動作しません.... Qt は Android の ListView とそのリサイクル機能を見て ListView の問題を解決できると思います。

0 投票する
3 に答える
2048 参照

c++ - 項目データによる QStandardItemModel からの行の検索/削除

私はQStandardItemModel単一の列を持つ(リストを表す)を持っています。リスト内の各項目には、QStandardItemのデータとして格納された一意の整数 ID があります (これを介して、デフォルトQStandardItem::setDataで入っていると思いQt::UserRole+1ます)。

これらの ID の 1 つを指定して、モデルから対応する行を見つけて削除したいと思います。今、私はこれをやっています:

それは正常に動作しますが、その関数のすべての行が私をうんざりさせます。これを行うためのよりクリーンな方法はありますか?