qt - 如何访问 DelegateModel 委托中的部分属性
问题描述
考虑以下代码:
import QtQuick 2.0
import QtQuick.Window 2.14
import QtQml.Models 2.2
Window {
width: 200
height: 100
visible: true
DelegateModel {
id: visualModel
model: ListModel {
ListElement {
name: "Apple"
}
ListElement {
name: "Orange"
}
}
delegate: Rectangle {
height: 25
width: 100
Text {
text: "Name: " + name + " Current section: <insert current section here>" ; // How to get section here
}
}
}
ListView {
anchors.fill: parent
model: visualModel
section.property: "name"
section.criteria: ViewSection.FullString
section.delegate: Text {
text: section
}
}
}
在这里,我需要从 VisualModel 的委托中的 ListView 访问附加的部分属性,但我似乎无法获得它,我尝试了不同的组合,例如直接访问它或通过模型的属性,但似乎没有任何效果,任何帮助将不胜感激
解决方案
基本上你必须使用这个语法-><delegate root item>.ListView.section
所以上面的工作代码看起来像这样
import QtQuick 2.0
import QtQuick.Window 2.14
import QtQml.Models 2.2
Window {
width: 200
height: 100
visible: true
DelegateModel {
id: visualModel
model: ListModel {
ListElement {
name: "Apple"
}
ListElement {
name: "Orange"
}
}
delegate: Rectangle {
id: root
height: 25
width: 100
Text {
text: "Name: " + name + " Current section: " + root.ListView.section ;
}
}
}
ListView {
anchors.fill: parent
model: visualModel
section.property: "name"
section.criteria: ViewSection.FullString
section.delegate: Text {
text: section
}
}
}
推荐阅读
- java - 使用似乎没有密码的现有密钥库为应用程序签名
- java - 根据婚姻状况查找税收收入
- typescript - 打字稿:使用一个或另一个界面键入变量
- firebase - 用于 Web 项目的 Cloud Functions 与 Firebase SDK
- c - 表示多维数组或多指针的结束
- spring-boot - 处理 Amqp.outboundAdapter 中的异常
- html - HTML5 视频高度显示不同,具体取决于浏览器
- python - pyspark UDF 中 scipy.optimize.curve_fit 的异常处理
- java - 是否可以在不扩展 AbstractTestNGSpringContextTests 的情况下将 TestNG 与 Spring Test 一起使用?
- android - 如何通过改造 Android 提出请求