在这里问类似的问题
How to get Clicked or Pressed event on QML TableView header?
我想在悬停时突出显示标题。但是headerDelegate
中的行为很奇怪。
headerDelegate: Rectangle {
height:30
MouseArea{
hoverEnabled: true
anchors.fill: parent
onPressed: {
console.debug("This will not be printed")
}
onEntered: {
console.debug("Will print on pressed event")
}
onExited: {
console.debug("Will print on released event")
}
}
}
将鼠标悬停完全不会触发任何事件。
答案 0 :(得分:1)
悬停和其他状态由标头委托中的styleData
组件处理。
如果您想知道悬停何时发生变化,请将onPressed
的不同信号(onContainsMouseChanged
,styleData
等)连接到功能。
例如:
headerDelegate: Rectangle {
height:30
color: "red"
Connections {
target: styleData
onPressedChanged: {
console.debug("PRESSED: "+ styleData.column + " " + styleData.pressed)
}
onContainsMouseChanged: {
if (styleData.containsMouse)
console.debug("The mouse is hover the header of column " + styleData.column)
else
console.debug("The mouse is leaving the header of column " + styleData.column)
}
}
}