問題タブ [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.
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() メソッドにアクセスするようには見えず、プログラムは引き続きクラッシュします。
pyqt - 縦横比を維持した同じサムネイルサイズでQListViewに画像を表示する
そこで、QListView で画像を表示する方法を見つけました。
しかし今、すべての画像を同じサムネイルサイズで表示する方法が必要であり、ファイル名はそれらを移動せず、ファイル名は次の行に折り返す必要があります!!! どうすればそれを達成できますか。
qt - QAbstractListModel オブジェクトを 1 つのクラスのプロパティとして配置できません
私のコードは次のようになります。
PeopleListModel は QAbstractListModel のサブクラスです。
しかし、コンパイルエラーが発生しました:
qt - 基本クラス 'QAbstractListModel' にはプライベート コピー コンストラクターがあります
QT QML プロジェクトがあります。(まだ小さい)
UScenario
モデルにリストビューをバインドし、サブクラスQAbstractListModel
化することから始めましたが、問題なく動作しました。
現在、それぞれUScenario
に のリストがありUTask
、これには のリストもありますUCondition
(つまり、Utask
サブクラスもQAbstractListModel
)。しかし、その後、QT Creator はエラーを出します:
だから私はどこに問題があるのか わかりません。QAbstractListModel
vsに関するドキュメントを読んでみましたQAbstractItemModel
が、手がかりがありません。
UTask
また、間違った方法で を構築したことがあるかどうかも確認しようとしました。ないと思います。
python - QAbstractListModel を QML に渡すことができません
私はPyQt5 を使用して、この PySide チュートリアルにできるだけ近づけています。コードを実行すると、次のエラーが表示されます:ReferenceError: pythonListModel is not defined
リストに項目がなく黒く表示されます。
これは私のコードです
私のモデルとラッパー
そして私のQML
Qt が contextProperty を見つけられないのはなぜですか?
qt - ListViewを使用せずにQmlのQAbstractListModelアイテムにアクセスする
qml側にモデルを持たせるために、QAbstractListModelをサブクラス化しました。このモデルは、モデルを扱う ListViews やその他の同様のコンポーネントで簡単に使用できますが、直接アクセスすることはできません。これは私が成功せずに試していることです:
これは可能ですか?間違った構文を使用していますか?