問題タブ [qabstractlistmodel]

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 投票する
2 に答える
4299 参照

c++ - QAbstractListModel から項目を削除した後に QML がクラッシュする

OS-X 10.8.5 を搭載した Mac で Qt 5.1.1 と QtCreator 2.8.1 を実行しています。ImageData オブジェクトを管理する QAbstractListModel があります。main.cpp に ImageProvider を登録した後、GridView を使用して QML で画像を読み込んで問題なく表示できます。

次に、ビュー内の個々の画像を選択します。たとえば、選択した複数の画像がオレンジ色の境界線で下に表示されます。

ここに画像の説明を入力

次に、C++ モデル関数 deleteSelected() は、期待される結果を生成します。

ここに画像の説明を入力

ただし、ウィンドウのサイズを変更しようとすると、コーナーの 1 つをつかむなどしてクラッシュします。スタック トレースには次のように表示されます: Exception Type: EXC_CRASH (SIGABRT) で、Qt エラーが発生します:

おそらく、モデル アイテムを不適切に削除したか、モデルに変更を通知できなかったのでしょう。間違いなく、これについて他に何かが欠けています。

サイズ変更後にアプリケーションがクラッシュするのを防ぐために、ResetModel の begin と end も呼び出しましたが、その場合、モデルに関連付けられた他のビューはすべて元のアイテムの表示に戻ります。

私はこれに対する解決策を探し、多くのコード実験を試み、ここ、ここ、ここ、および他のいくつかの場所に投稿されたコード研究まし

これを適切に機能させることができないようです。何か提案はありますか? ありがとう!

以下は関連するコードです。


main.cpp:

DataModelController.h:

DataModelController.cpp

ImageData.h:

main.qml:

イメージデータ.cpp:


編集: 範囲チェックに関する以下の userr1728854 のコメントの後、DataModelController::data() の最初の部分を編集して、これが問題であるかどうかを確認しました。

私のコードは次のようになりました(元のコードを変更するよりも以下を参照する方が簡単です。また、投稿した内容を変更して質問のコンテキストを変更したくありませんでした):

したがって、これが範囲チェックを data() メソッドに追加する最も確実な方法ではない場合でも、次の行:

cout << "model index = " << index.row() << endl;

ウィンドウのサイズを変更すると、少なくとも「index.row()」を出力する必要がありますが、そうではありません。そのため、ウィンドウのサイズを変更しても data() メソッドにアクセスするようには見えず、プログラムは引き続きクラッシュします。

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

pyqt - 縦横比を維持した同じサムネイルサイズでQListViewに画像を表示する

そこで、QListView で画像を表示する方法を見つけました。

しかし今、すべての画像を同じサムネイルサイズで表示する方法が必要であり、ファイル名はそれらを移動せず、ファイル名は次の行に折り返す必要があります!!! どうすればそれを達成できますか。

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

qt - QAbstractListModel オブジェクトを 1 つのクラスのプロパティとして配置できません

私のコードは次のようになります。

PeopleListModel は QAbstractListModel のサブクラスです。

しかし、コンパイルエラーが発生しました:

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

qt - 基本クラス 'QAbstractListModel' にはプライベート コピー コンストラクターがあります

QT QML プロジェクトがあります。(まだ小さい)

UScenarioモデルにリストビューをバインドし、サブクラスQAbstractListModel化することから始めましたが、問題なく動作しました。

現在、それぞれUScenarioに のリストがありUTask、これには のリストもありますUCondition(つまり、UtaskサブクラスもQAbstractListModel)。しかし、その後、QT Creator はエラーを出します:

だから私はどこに問題があるのか​​ わかりません。QAbstractListModelvsに関するドキュメントを読んでみましたQAbstractItemModelが、手がかりがありません。

UTaskまた、間違った方法で を構築したことがあるかどうかも確認しようとしました。ないと思います。

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

python - QAbstractListModel を QML に渡すことができません

私はPyQt5 を使用して、この PySide チュートリアルにできるだけ近づけています。コードを実行すると、次のエラーが表示されます:ReferenceError: pythonListModel is not definedリストに項目がなく黒く表示されます。

これは私のコードです

私のモデルとラッパー

そして私のQML

Qt が contextProperty を見つけられないのはなぜですか?

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

qt - ListViewを使用せずにQmlのQAbstractListModelアイテムにアクセスする

qml側にモデルを持たせるために、QAbstractListModelをサブクラス化しました。このモデルは、モデルを扱う ListViews やその他の同様のコンポーネントで簡単に使用できますが、直接アクセスすることはできません。これは私が成功せずに試していることです:

これは可能ですか?間違った構文を使用していますか?