問題タブ [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.

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

qt - QTreeView & QAbstractItemModel & insertRow

QTreeView に QAbstractItemModel を実装しようとしています。行の挿入に問題があります。アプリケーションの最初に挿入すると、すべて正常に動作することに気付きました。しかし、後で行を挿入すると、他の操作 (選択など) の後、新しい項目は非表示のままになります。さらに、QTreeView はまったく機能しないようです。行の挿入について QTreeView に通知するためにいくつかの信号を送信する必要がありますか?

これは私の挿入方法です:

LayersModelItem は、子とデータを持つ QList を持つクラスです。

私のプロジェクトの完全なコード (KDE ライブラリが必要) はこちらです: https://github.com/coder89/PhotoFramesEditor/tree/v0.0.8 問題を確認するには、メイン ウィンドウの青い項目の 1 つを選択し、それを右クリックして、 「アイテムを削除」を選択します。(このメソッドは Canvas::removeItems() にあります) 完全にコメントされています - 私は絶望的で、この問題の理由を見つけようとしました... (実際には何も削除されませんでした - 新しいアイテムを追加します)。

ヘルプとアドバイスをありがとう!

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

c++ - QAbstractItemModel data() は決して呼び出されません

QTreeView を作成し、それにカスタム モデルを使用しようとしています。私はさまざまな場所に声明を出しましたが、決して呼び出されないqDebug()と判断しました。この問題を解決するにはどうすればよいですか?data()

モデルのコードは以下です

ビューが配置されている MainWindow のコードを以下に示します。

このモデルではヘッダーが表示されることに注意してください。しかし、アイテムを設定しても、ヘッダーを保存したウィジェットには何も表示されません。

ああ、NeuralNetworkのサブですNeuralNode

0 投票する
0 に答える
535 参照

qt4 - QAbstractItemModelと私のstd::map <>データの間に接続を作成する方法は?

私はいくつかのデータを持っています、例

それはstd::map< CompanyPtr, PersonPtr >です。mapこれをに合わせてQAbstractItemModel、その後に接続しQTreeViewます。

Simple Tree Modelの例を使用しましたが、複雑です(ここでは、TreeItemクラスとsetupModelDataメソッドについて説明しています)。

これが私のモデルクラスです:

そして私のクラスでは、この2つのメソッドを正しく実装できません。

多分誰かがすでにこの問題を解決しましたか?

ありがとうございました!

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

qt - Qtエラー「永続モデルインデックスが壊れています」なぜですか?

Qt/インタビュー アプリケーションに問題があります。QTreeView を使用してツリー データを表示します。QAbstractItemModel に基づいて独自のモデルを実装しました。

アプリケーションがクラッシュする前に、次のエラーが発生します。新しいレコードを追加した後によく発生します。

このエラーの意味を教えてください。QPersistentModelIndex とは何ですか? コードで QPersistentModelIndex を使用していません。

ありがとう。

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

qt - QTreeView / QAbstractItemModel - アイテムの追加と beginInsertRows の使用

QAbstractItemModel に基づいてモデルを実装しており、それを QTreeView と共に使用して階層データを表示しています。データは sqlite テーブルに格納されます。

私の質問は、サブノードを追加するときに beginInsertRows を呼び出す方法です。親ノードがあり、10 個のサブノードが含まれているとします。そして、新しいサブノードを(最後に)追加したいと思います。

私はこのようにやっています:

currentNodesCount には、このサブノードの行数である値 10 が含まれています。新しいノードは 11 番目の位置 (0 から数えて 10 番目) に配置されます。

この論理は正しいですか?

手伝ってくれてありがとう。


beginRemoveRows の使用についても疑問に思っています。

これは正しいです:

currentRow には、0 から数えて削除されたノードのリスト内の位置が含まれます。

0 投票する
2 に答える
2175 参照

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 です。

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

c++ - QAbstractItemModel + ModelTest::rowsInserted ASSERTion の問題

ModelTest でモデル (QAbstractItemModel) をデバッグしようとしています。そして、私は1つの主張を理解できません。

ModelTest には、モデルによって生成された信号をインターセプトするスロットが 2 つあります。

  1. ModelTest::rowsAboutToBeInserted
  2. ModelTest::rowsInserted

スロット/機能1はこんな感じ

スロット2はこんな感じ

dla 最後のアサーション (*) がわかりません。私のアプリで 1 行追加するとします。この行は、モデルに格納されている唯一の行です。したがって、行番号は 0 になります。

私が呼び出す行を追加する前の私のモデルで

では、なぜ modeltest が必要なのか

モデル -> データ ( モデル -> インデックス (開始、0、親) )

に等しくなる

モデル-> データ ( モデル-> インデックス ( end + 1, 0, c.parent ) )

ここで何が欠けていますか? 助けてください :)

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

python - プログラムでQTreeviewのアクティブな行を取得して設定します(PyQt)

QTreeView(QTreeWidgetではない)のアクティブな行を取得して変更する方法はありますか?アクティブとは、選択した行ではなく、フォーカスが強調表示されている行を意味します。ペイントイベントではQStyle.State_HasFocus、アクティブな行を取得するために使用できますが、これは他の場所では機能しないようです。

0 投票する
2 に答える
2810 参照

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 ?

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

qt - Qt: QtSql を使用した QAbstractItemModel 実装の例 (QTreeView で使用)

QTreeView で使用する QAbstractItemModel の実装例を探しています。モデルは QSqlQuery からデータをロードする必要があり、「怠惰な」方法で実行する必要があります。つまり、開いているノード/親のレコードのみをロードしたいということです。そして、このモデルからレコードを適切に追加および削除する方法を知りたいです。

このようなモデルを自分で実装しようとしましたが、特に行の追加と削除を開始したときに、さまざまなバグが発生しました。

そのような例をどこで見つけることができるか知っていれば、とても感謝しています。

ありがとう :)