問題タブ [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 投票する
1 に答える
930 参照

python - PyQt5 and QAbstractListModel::columnCount

QTreeView ignores columnCount() of class inherited from QAbstractListModel and shows only first column:

Relevant C++ code works fine.

What am I doing wrong?

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

qt - モデルが変更された場合、ListView は下にあるモデルを再描画しますか?

質問は基本的にタイトルですが、もう少し詳細です:

をサブクラス化しました。QAbstractListModel名前を付けましょうmyModel。私はmyModelC++ コードでコンテンツを作成し、それをListViewQML にフィードしています。私のコードはmyModelC++ コードで変更され、私の ですぐに変更を確認できますListView。これは問題ありません。私の質問は、ListView下にあるモデルが変更されたとき(アイテムの追加など)、または単に新しいアイテムを描画したときに、すべての要素を再描画しますか?

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

qml - QAbstractListModelでカスタムオブジェクトをロールとして定義する方法は?

私の質問は、派生モデルでカスタム オブジェクトを役割として指定するにはどうすればよいのでしょうQAbstractListModelListView。ここに例を示すには、いくつかの簡単なコード例を示します。

これは、私のカスタム オブジェクトを表すクラスです。

これは、派生元のオーバーライドされたdata()関数が現在どのように見えるか (ただし、機能していません) です。MyModelQAbsractListModel

ここでは、ロール名を次のように指定しますMyModel

これは、デリゲートでメンバー変数にListViewアクセスする方法の例を使用して、QML コードでどのように見えるかです。MyCustomObject


EDIT1: => 必要なコピー コンストラクターを修正

Q_DECLARE_METATYPE を my の下に追加するとMyCustomObject、次のエラーが表示されます。


EDIT2:

そのため、@Evgeny が提案した必要な機能をすべて追加しました。私のコードはエラーなしでコンパイルされるようになりましたが、実行時に次のような qml エラーが発生します。 TypeError: Property 'getType' of object QVariant(MyCustomObject) is not a function

Q_INVOKABLEメソッドの前に追加し、からクラスをgetType()派生させました。ヘッダーファイルの下部に追加しました。I callのコンストラクターで、 my I でクラスを登録する場合も、このようにしますMyCustomObjectpublic QObjectQ_DECLARE_METATYPEMyCustomObjectMyCustomObjectqRegisterMetaType<MyCustomObject>("MyCustomObject")mainqmlRegisterType<MyCustomObject>("com.test.mycustomobject", 1, 0, "MyCustomObject")

クラスはMyCustomObject次のようになります。

これは、オーバーライドされた関数が、派生data()元の現在のように見える方法です:MyModelQAbsractListModel

私が最初に投稿した他のすべての機能は同じです。

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

qt - QMapベースのQAbstractListModelで特定の行のインデックスを見つける方法は?

私はqmlで視覚化しているにQAbstractListModel基づいて派生したクラスを持っています。アプリケーションの実行中に、このマップに基づいていくつかのアイテムを削除しています。削除を行っているときに、コンテンツが変更され、再描画が必要であることが通知されるように呼び出したいと思います。の適切なインデックスを見つけるにはどうすればよいですか?QMap<QUuid, CustomObject>ListViewQUuidbeginRemoveRowsListViewbeginRemoveRows

0 投票する
4 に答える
2110 参照

qt - 現在の項目が L​​istView のセクションの最後の項目であるかどうかを確認するにはどうすればよいですか

そのため、アイテムを描いているときは、ListViewそれらをセクションに分類しています。セクション内の各項目には、次の項目との区切りとして線があります。最後の項目については、このセパレーターを描画したくありません。それ自体を描画している現在のアイテムがセクションの最後のアイテムであるかどうかを確認するにはどうすればよいListViewですか (! ではありません)。

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

qt - QAbstractItemMode 、抽象データ メソッドから QList<*> 変数を取得する方法

first 、 last 、および sub(QList) を保持するクラスがあります。例:

このコード ブロックに QList サブリストを追加した後、アプリをビルドできません。

エラーは次のとおりです: C:\Qt\5.6\mingw49_32\include\QtCore\qglobal.h:725: エラー: 静的アサーションに失敗しました: タイプが登録されていません。Q_DECLARE_METATYPE マクロを使用して Qt のメタオブジェクト システムに認識させてください #define Q_STATIC_ASSERT_X(条件、メッセージ) static_assert(bool(条件)、メッセージ) ^

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

qt - リストに行を追加する

リストを印刷するためのListというクラスがあります

公開:

保護された:

プライベート:

そして別のクラスマネージャーとして

公開:

プライベート:

今、私は manager.cpp に行を追加しようとます

私の意図は、 manager.cpp ファイルに getlist を 実装することです

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

qt - Qt/QML QListを返す方法QAbstractListModel からの仮想データ メソッドからのコレクション

何をすべきかまとめたいと思います。私はDataObjectメンバーを持つクラスを持っています:

私はQAbstractListModelこれに慣れています。first と last は listview に参照できますが、 like は参照できませんm_sublist[0].lesson。次のようなエラーが表示されます。

未定義のプロパティ「レッスン」を読み取れません。

私のコード: dataobject.h

simplelistmodel.h

シンプルリストモデル.cpp

main.cpp

myuiscript.qml

解決策が見つかりません。仮想データ モデルは、単一タイプのオブジェクトを返します。FirsNameは文字列です。のように listview デリゲートを参照できませんfirstName(rolename)。のようにもLastName呼ばれlastName(rolename)ます。しかし、私はsubList(roleNames)のように参照することはできませんsublist[0].lesson

私の目標はとてもシンプルです。(int,QString ....)ロール名を使用して、単一の型をデリゲートのテキストに参照したい。を使用して、コレクションtype(QList<SubObject*>)をデリゲートのテキストに参照できませんrolename(subList[0].lesson)。それらを達成する方法は?