gpt4 book ai didi

c++ - Treeview 模型属性在委托(delegate)警告中为空

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:17:35 26 4
gpt4 key购买 nike

我有一个TreeView

TreeView {
id: dndView
rowDelegate: Item {
height: 30
}
itemDelegate: dndDelegate
model: myModel
TableViewColumn {
title: "Name"
resizable: true
}
}

及其工作的代表

Rectangle {
id: dragRect
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
color: 'gray'
width: dndView.width - 20
height: 30
Image {
id: menuItemImage
anchors.verticalCenter:parent.verticalCenter
source:model.CommandIcon
}
Text {
anchors.left:menuItemImage.right
anchors.verticalCenter:parent.verticalCenter
text:model.CommandTitle
font.pixelSize: 14
}

C++ 文件中的角色:

QHash<int, QByteArray> MenuTreeModel::roleNames() const {
QHash<int, QByteArray> roles;
roles[TitleRole] = "CommandTitle";
roles[IconRole] = "CommandIcon";
return roles;
}

它可以正确显示文本和图标,但是当我展开项目或关闭应用程序时,我会收到警告:

qrc:/DraggableRectangle.qml:15: TypeError: Cannot read property 'CommandIcon' of null qrc:/DraggableRectangle.qml:20: TypeError: Cannot read property 'CommandTitle' of null*

这是怎么回事?

最佳答案

如果警告仅出现在特定事件上,则可能意味着当您的 QML View 尝试使用模型时模型已被破坏或尚未创建。

例如如果在关闭应用程序时模型在 View 之前被销毁, View 仍会尝试在短时间内使用已销毁的对象(在它也被销毁之前)。

试试这个:

text: model ? model.CommandTitle : ""

关于c++ - Treeview 模型属性在委托(delegate)警告中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31273048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com