問題タブ [qabstractitemmodel]
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 - QTreeView & QAbstractItemModel & insertRow
QTreeView に QAbstractItemModel を実装しようとしています。行の挿入に問題があります。アプリケーションの最初に挿入すると、すべて正常に動作することに気付きました。しかし、後で行を挿入すると、他の操作 (選択など) の後、新しい項目は非表示のままになります。さらに、QTreeView はまったく機能しないようです。行の挿入について QTreeView に通知するためにいくつかの信号を送信する必要がありますか?
これは私の挿入方法です:
LayersModelItem は、子とデータを持つ QList を持つクラスです。
私のプロジェクトの完全なコード (KDE ライブラリが必要) はこちらです: https://github.com/coder89/PhotoFramesEditor/tree/v0.0.8 問題を確認するには、メイン ウィンドウの青い項目の 1 つを選択し、それを右クリックして、 「アイテムを削除」を選択します。(このメソッドは Canvas::removeItems() にあります) 完全にコメントされています - 私は絶望的で、この問題の理由を見つけようとしました... (実際には何も削除されませんでした - 新しいアイテムを追加します)。
ヘルプとアドバイスをありがとう!
c++ - QAbstractItemModel data() は決して呼び出されません
QTreeView を作成し、それにカスタム モデルを使用しようとしています。私はさまざまな場所に声明を出しましたが、決して呼び出されないqDebug()
と判断しました。この問題を解決するにはどうすればよいですか?data()
モデルのコードは以下です
ビューが配置されている MainWindow のコードを以下に示します。
このモデルではヘッダーが表示されることに注意してください。しかし、アイテムを設定しても、ヘッダーを保存したウィジェットには何も表示されません。
ああ、NeuralNetwork
のサブですNeuralNode
。
qt4 - QAbstractItemModelと私のstd::map <>データの間に接続を作成する方法は?
私はいくつかのデータを持っています、例
それはstd::map< CompanyPtr, PersonPtr >
です。map
これをに合わせてQAbstractItemModel
、その後に接続しQTreeView
ます。
Simple Tree Modelの例を使用しましたが、複雑です(ここでは、TreeItem
クラスとsetupModelData
メソッドについて説明しています)。
これが私のモデルクラスです:
そして私のクラスでは、この2つのメソッドを正しく実装できません。
多分誰かがすでにこの問題を解決しましたか?
ありがとうございました!
qt - Qtエラー「永続モデルインデックスが壊れています」なぜですか?
Qt/インタビュー アプリケーションに問題があります。QTreeView を使用してツリー データを表示します。QAbstractItemModel に基づいて独自のモデルを実装しました。
アプリケーションがクラッシュする前に、次のエラーが発生します。新しいレコードを追加した後によく発生します。
このエラーの意味を教えてください。QPersistentModelIndex とは何ですか? コードで QPersistentModelIndex を使用していません。
ありがとう。
qt - QTreeView / QAbstractItemModel - アイテムの追加と beginInsertRows の使用
QAbstractItemModel に基づいてモデルを実装しており、それを QTreeView と共に使用して階層データを表示しています。データは sqlite テーブルに格納されます。
私の質問は、サブノードを追加するときに beginInsertRows を呼び出す方法です。親ノードがあり、10 個のサブノードが含まれているとします。そして、新しいサブノードを(最後に)追加したいと思います。
私はこのようにやっています:
currentNodesCount には、このサブノードの行数である値 10 が含まれています。新しいノードは 11 番目の位置 (0 から数えて 10 番目) に配置されます。
この論理は正しいですか?
手伝ってくれてありがとう。
beginRemoveRows の使用についても疑問に思っています。
これは正しいです:
currentRow には、0 から数えて削除されたノードのリスト内の位置が含まれます。
qt - modeltest を使用した QAbstractItemModel テスト
modeltest を使用して QAbstractItemModel に基づいてモデルをテストする方法についての優れたチュートリアルを探しています。表示されるデバッグ メッセージの解釈方法がわかりません。
また、QtCreator で自分のアプリと連携するように modeltest プロジェクトを構成するのに問題があります。.pri/ .proを含めても機能しません。"No rule to mage target .." というエラーが表示されます。modeltest/modeltest.pro ファイルのパスを修正すると、コンパイルが開始されます。しかし、私はこの奇妙な主張を得る
ASSERT: ファイル c:\ndk_buildrepos\qt-desktop\src\testlib\qtestlog.cpp の「QTest::testLogger」、232 行目
なぜこれが起こるのですか?
私の modeltest フォルダーは私のプロジェクト内にあります。*.pro ファイルの最後に次の行を追加しました
modeltest.pri ファイルには次のものが含まれます。
この方法で modeltest を使用するようにコードを変更しました
TasksModel は QAbstractItemModel モデルの私の実装です。ui->treeView は、データを表示するウィジェットです。
modeltest をアプリに統合する際に行われた他の変更はありません。
Qt のバージョンは 4.7 です。
c++ - QAbstractItemModel + ModelTest::rowsInserted ASSERTion の問題
ModelTest でモデル (QAbstractItemModel) をデバッグしようとしています。そして、私は1つの主張を理解できません。
ModelTest には、モデルによって生成された信号をインターセプトするスロットが 2 つあります。
- ModelTest::rowsAboutToBeInserted
- ModelTest::rowsInserted
スロット/機能1はこんな感じ
スロット2はこんな感じ
dla 最後のアサーション (*) がわかりません。私のアプリで 1 行追加するとします。この行は、モデルに格納されている唯一の行です。したがって、行番号は 0 になります。
私が呼び出す行を追加する前の私のモデルで
では、なぜ modeltest が必要なのか
モデル -> データ ( モデル -> インデックス (開始、0、親) )
に等しくなる
モデル-> データ ( モデル-> インデックス ( end + 1, 0, c.parent ) )
ここで何が欠けていますか? 助けてください :)
python - プログラムでQTreeviewのアクティブな行を取得して設定します(PyQt)
QTreeView(QTreeWidgetではない)のアクティブな行を取得して変更する方法はありますか?アクティブとは、選択した行ではなく、フォーカスが強調表示されている行を意味します。ペイントイベントではQStyle.State_HasFocus
、アクティブな行を取得するために使用できますが、これは他の場所では機能しないようです。
qt - QAbstractItemModel + QTreeView what could couse item to become unselectable?
I'm trying to create my own model based on QAbstractItemModel. It seems to work fine. It passes modeltest assertions.
I've this strange problem when I remove a row. Removal operation works ok. But then other rows become unselectable (not all of them). Have You ever come across such behaviour ?
In which conditions QTreeView could decide that row can not be selected ?
Any ideas ? If needed I can provide the whole model implementation.
EDIT: As an alternative I'm looking for an example of 100% working QAbstractItemModel + QtSql + QTreeView implementation. Model should provide add and remove methods and it has to pass modeltest. This also would answer my question :-)
EDIT: Below is my source code. Compacted a little to make it smaller
ps I see now that there is a bug in parent() implementation. After removing a row values in nodeParams[*].row contain incorrect positions. How do You solve this issue without loading the whole tree into memory ?
qt - Qt: QtSql を使用した QAbstractItemModel 実装の例 (QTreeView で使用)
QTreeView で使用する QAbstractItemModel の実装例を探しています。モデルは QSqlQuery からデータをロードする必要があり、「怠惰な」方法で実行する必要があります。つまり、開いているノード/親のレコードのみをロードしたいということです。そして、このモデルからレコードを適切に追加および削除する方法を知りたいです。
このようなモデルを自分で実装しようとしましたが、特に行の追加と削除を開始したときに、さまざまなバグが発生しました。
そのような例をどこで見つけることができるか知っていれば、とても感謝しています。
ありがとう :)