我想为ToolTip
中的委托Component
制作TableView
。它工作正常,如果我使用ItemDelegate
,但是,我不能使用ItemDelegate
,因为它会破坏TableView
的选择模式。如果我尝试在我的委托组件中定义ToolTip
,我会收到错误
qrc:/FileSystem.qml:34 Invalid component body specification
如何使用工具提示Component
?
这是我的代码:
TreeView {
id: view
anchors.fill: parent
sortIndicatorVisible: true
model: fileSystemModel
rootIndex: rootPathIndex
selection: sel
selectionMode: 2
Component {
id: mycomp
Row{
id: myrow
CheckBox{
id: cbox
anchors.baseline: ctext.baseline
}
Text{
id: ctext
text: styleData.value
color: styleData.textColor
width: namecolumn.width-cbox.width-myrow.x
elide: Text.ElideRight
}
}
NC.ToolTip {
parent: mycomp
visible: hovered
delay: 1000
text: qsTr(styleData.value)
}
}
TableViewColumn {
id: namecolumn
title: "Name"
role: "fileName"
resizable: true
width: parent.width-sizeWidth-dateWidth-scrollBarWidth
delegate: mycomp
}
答案 0 :(得分:2)
组件必须只包含一个“子”。因此,您可以尝试将组件的内容包装到Item中,如下所示:
Component {
Item {
width: parent.width
height: myrow.height
Row{
id: myrow
CheckBox{
id: cbox
anchors.baseline: ctext.baseline
}
Text{
id: ctext
text: styleData.value
color: styleData.textColor
width: namecolumn.width-cbox.width-myrow.x
elide: Text.ElideRight
}
}
MouseArea {
id: mouseArea
anchors.fill: true
hoverEnabled: true
}
NC.ToolTip {
visible: mouseArea.containsMouse
delay: 1000
text: qsTr(styleData.value)
}
}
}