カスタムQMLコンポーネント(複数選択が可能なListView
の特殊化)を作成しています。私は、コンポーネントに提供されたオブジェクトに添付プロパティを提供したいと思います。私はどのようにcreate attached properties using C++を参照してください。しかし、私は純粋なQMLでカスタムプロパティを追加することについての情報を見つけることができません。これはQMLを使って可能ですか?QMLのカスタムアタッチプロパティ
0
A
答えて
4
2
。次に、アダプターにネストだけを接続する代わりに、アダプターを親/コンテナーとして使用します。オブジェクトをアダプタにネストすることで、別のC++排他グループ化プロパティを取得することもできます。このオーバーヘッドを最小限に抑えるには、JSオブジェクトとプロパティを使用することです。変更通知はありませんが、手動で放射することでやや軽減できます。
例:
// Adapter.qml - interface with attached properties
Item {
id: adapter
property int customInt : Math.random() * 1000
property var group : {"a" : Math.random(), "b" : Math.random() }
default property Component delegate
width: childrenRect.width
height: childrenRect.height
Component.onCompleted: delegate.createObject(adapter)
}
// usage
ListView {
width: 100
height: 300
model: 5
delegate: Adapter {
Row {
spacing: 10
Text { text: index }
Text { text: customInt }
Text { text: group.a }
Text { text: group.a }
}
}
}
それはいくつかの他のQMLの回避策に比べてかなり無痛と便利です。 parent.parent.customInt
を実行する必要はありません。プロパティが直接接続されているかのようにアクセスできます。これは動的スコープのために機能します。 default property
では、アダプタに直接必要なデリゲートをネストするプロパティとして内部デリゲートを設定しないようにできます。
それらのアクロバットが行き過ぎている多くのケースで、あなただけの場所でラップすることができます:
ListView {
width: 100
height: 300
model: 5
delegate: Item {
width: childrenRect.width
height: childrenRect.height
property string custom1: "another"
property string custom2: "set of"
property string custom3: "properties"
Row {
spacing: 10
Text { text: index }
Text { text: custom1 }
Text { text: custom2 }
Text { text: custom3 }
}
}
}
ビューが適切にオブジェクトをレイアウトできるように、唯一の重要な部分は、実際にアダプタオブジェクトのサイズのための結合であります。私は日常的には、Wrap
要素を本質的には同じですが、C++で実装しています。これはQMLバインディングよりもはるかに効率的です。
関連する問題
- 1. QML QtObjectをqmlから別のQMLに渡す
- 2. QT QML C++とQMLの両方のアイテム
- 3. QMLアプリケーションとQML/C++アプリケーション
- 4. QML
- 5. QML
- 6. QML JSの実装ではQML
- 7. QML列のヘッダー
- 8. QMLマウスエリアのレイアウト
- 9. QMLプロパティのバインド
- 10. QMLのオフセットローテーションアイテム
- 11. QMLリストビューのアンカー
- 12. QMLのマルチタッチ
- 13. QMLデスクトップのRadioButton
- 14. QWidgetのQMLウィジェット
- 15. C++とQML:接続QML信号C++スロット
- 16. QMLチャートインタラクティブ
- 17. QMLテキストドロップシャドウ
- 18. QML - QmlRegisterType
- 19. QMLスタイルゲージ
- 20. QMLオブジェクト
- 21. QMLコーディングスタイルチェッカー
- 22. はQML
- 23. QML - ページ
- 24. カメラビデオ上のQMLオーバーレイ
- 25. QPixmapのQML背景
- 26. QWidgetとQMLのプロパティバインディング
- 27. QML TextEdit内のプレースホルダテキスト
- 28. QML:デザインパーセプションからのqmlページ間の移動
- 29. QMLグリッドをスクロール
- 30. QMLレンダリングエンジン:フレームリフレッシュイベント
誰かが文書から見積もりを見つけなければなりません。 AFAIKにはQML構文はありません。 – Velkan
私はそれがC++からのみ可能だと思います。 –