問題タブ [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.
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?
qt - モデルが変更された場合、ListView は下にあるモデルを再描画しますか?
質問は基本的にタイトルですが、もう少し詳細です:
をサブクラス化しました。QAbstractListModel
名前を付けましょうmyModel
。私はmyModel
C++ コードでコンテンツを作成し、それをListView
QML にフィードしています。私のコードはmyModel
C++ コードで変更され、私の ですぐに変更を確認できますListView
。これは問題ありません。私の質問は、ListView
下にあるモデルが変更されたとき(アイテムの追加など)、または単に新しいアイテムを描画したときに、すべての要素を再描画しますか?
qml - QAbstractListModelでカスタムオブジェクトをロールとして定義する方法は?
私の質問は、派生モデルでカスタム オブジェクトを役割として指定するにはどうすればよいのでしょうQAbstractListModel
かListView
。ここに例を示すには、いくつかの簡単なコード例を示します。
これは、私のカスタム オブジェクトを表すクラスです。
これは、派生元のオーバーライドされたdata()
関数が現在どのように見えるか (ただし、機能していません) です。MyModel
QAbsractListModel
ここでは、ロール名を次のように指定します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 でクラスを登録する場合も、このようにしますMyCustomObject
public QObject
Q_DECLARE_METATYPE
MyCustomObject
MyCustomObject
qRegisterMetaType<MyCustomObject>("MyCustomObject")
main
qmlRegisterType<MyCustomObject>("com.test.mycustomobject", 1, 0, "MyCustomObject")
クラスはMyCustomObject
次のようになります。
これは、オーバーライドされた関数が、派生data()
元の現在のように見える方法です:MyModel
QAbsractListModel
私が最初に投稿した他のすべての機能は同じです。
qt - QMapベースのQAbstractListModelで特定の行のインデックスを見つける方法は?
私はqmlで視覚化しているにQAbstractListModel
基づいて派生したクラスを持っています。アプリケーションの実行中に、このマップに基づいていくつかのアイテムを削除しています。削除を行っているときに、コンテンツが変更され、再描画が必要であることが通知されるように呼び出したいと思います。の適切なインデックスを見つけるにはどうすればよいですか?QMap<QUuid, CustomObject>
ListView
QUuid
beginRemoveRows
ListView
beginRemoveRows
qt - 現在の項目が ListView のセクションの最後の項目であるかどうかを確認するにはどうすればよいですか
そのため、アイテムを描いているときは、ListView
それらをセクションに分類しています。セクション内の各項目には、次の項目との区切りとして線があります。最後の項目については、このセパレーターを描画したくありません。それ自体を描画している現在のアイテムがセクションの最後のアイテムであるかどうかを確認するにはどうすればよいListView
ですか (! ではありません)。
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(条件)、メッセージ) ^
qt - リストに行を追加する
リストを印刷するためのListというクラスがあります
公開:
保護された:
プライベート:
そして別のクラスマネージャーとして
公開:
プライベート:
今、私は manager.cpp に行を追加しようとしています
私の意図は、 manager.cpp ファイルに getlist を 実装することです
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)
。それらを達成する方法は?