- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我必须在 qml 中使用某种 c++ qt 模型。我已经有了 QStandardItemModel,但由于所谓的 setRoleNames(),它在 QML 中不起作用。我一直在寻找角色的一些解释,但我似乎找不到。我找到了在 qml ( here ) 中使用 QStandardItemMODel 的某种解决方案,但它使用“角色”,所以我不明白它是如何工作的。
qt 模型中的角色是什么?
最佳答案
角色只是访问模型数据时使用的附加选择器。如何具体解释角色取决于模型和 View 。当您使用模型时,您必须在牢记模型的行为的同时决定使用哪些角色。这些角色让您可以将各种属性附加到每个数据项。
让我们看一个具体的例子。 QStringListModel
忽略除 EditRole
和 DisplayRole
之外的所有角色。如果您使用任何其他角色,数据访问操作将被忽略。您可以使用任一角色设置字符串,所使用的角色将由 dataChanged()
信号指示。您可以使用任一角色访问该字符串。这是设计使然,旨在用于打破绑定(bind)链。
角色的名称作为模型的属性公开。例如。如果要将委托(delegate)中的 TextEdit
绑定(bind)到模型,可以执行以下操作:
delegate: Component {
TextInput {
id: editor
text: edit // show the "edit" role of the model, to break the binding loop
onTextChanged: model.display = text // set the display role of the model
}
}
Qt 提供的 C++ 项模型按名称定义显示和编辑角色。如果您有自定义模型并想提供其他名称,在 Qt 5 中您应该重新实现 QAbstractItemModel::roleNames()
以返回哈希。当然,所述哈希应该包含 display
和 edit
角色!在 Qt 4 中,您需要改用 setRoleNames()
,因为 roleNames()
不是虚拟的。
我在 another answer 中提供了一个完整的示例.
关于c++ - qt 模型中的角色是什么以及 setRoleNames() 的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641530/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!