問題タブ [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.
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 を使用しないでください
c++ - QStandardItemModel のアイテムの割り当て解除
スタックに割り当てられた が破棄されると、モデル内のポインタが指しているオブジェクト (たとえば、次の例の/ポインタ)QStandardItemModel
はどうなりますか?item
item2
このコンテキストでは、私が正しく理解していれば、モデルの行は N 個の値で構成され、その行の各値は として表されQStandardItem
ます。これは、上記の「リスト」オブジェクトが 2 つの値 (列) を持つ 1 つの行であることを意味します。
model.setData()
これは、 を使用しmodel.setRowCount()
て手動で座標を追跡するよりも良いですか、悪いですか?
完全なコンテキストが必要な場合は、ここにあります。アイデアは、手動でQSqlQuery
結果をループし、行をチャンクでフェッチすることです。関連するメソッドは と呼ばれloadChunk
ます。
モデルがスタックに割り当てられている場合、モデルにロードされたアイテムの割り当て解除を何らかの形で管理する必要がありますかaddRow()
TLDR; モデルがスタックに割り当てられているときにモデルがメモリをリークしないようにする方法はありますが、ヒープ上のオブジェクトへのポインタがたくさん含まれていますか?
c++ - QStandardItem の高さを計算する方法はありますか?
QListView から拡張された展開可能な ListView を作成しました。ヘッダー データ (展開されていないアイテム) を表示したいだけの場合はすべてうまく機能します。ハードコードされた高さ 64 を指定したためです。展開すると詳細が表示されます。アイテム。しかし、問題は、詳細が 1 行以上になる可能性があるため、詳細の正確な高さがわからないことです。アイテムの内容に応じてアイテムの高さを合わせたいと考えています。
アイテムの展開または折りたたみ時にクリック リスナーを処理するコードは次のとおりです。
問題は、アイテムが展開されたときの高さを計算する方法です。
結果:
編集:
sizeHint()内のコードです
残念ながら動作しません.... Qt は Android の ListView とそのリサイクル機能を見て ListView の問題を解決できると思います。
c++ - 項目データによる QStandardItemModel からの行の検索/削除
私はQStandardItemModel
単一の列を持つ(リストを表す)を持っています。リスト内の各項目には、QStandardItem
のデータとして格納された一意の整数 ID があります (これを介して、デフォルトQStandardItem::setData
で入っていると思いQt::UserRole+1
ます)。
これらの ID の 1 つを指定して、モデルから対応する行を見つけて削除したいと思います。今、私はこれをやっています:
それは正常に動作しますが、その関数のすべての行が私をうんざりさせます。これを行うためのよりクリーンな方法はありますか?