Qt TableView-如何在不丢失styleData.selected的情况下获取悬停行
我需要突出显示Qt TableView-如何在不丢失styleData.selected的情况下获取悬停行,qt,qml,tableview,Qt,Qml,Tableview,我需要突出显示表视图中悬停的行。 默认情况下,没有悬停效果。 我可以在rowDelegate内部使用MouseArea来实现这一点。 但这将禁用TableView中的选择机制 表示styleData。选定的将不再工作。 这意味着我必须为选择机制(包括扩展选择)编写每一行代码 如何解决这个问题?我只需要一个小属性,比如styleData.hovered像handle组件中的ScrollViewStyle 这个问题已经在三年两个月前被提出了。不幸地没有回答 更新 rowDelegate:
表视图中悬停的行
。
默认情况下,没有悬停效果。
我可以在rowDelegate
内部使用MouseArea
来实现这一点。
但这将禁用TableView
中的选择机制
表示styleData。选定的将不再工作。
这意味着我必须为选择机制(包括扩展选择)编写每一行代码
如何解决这个问题?我只需要一个小属性,比如styleData.hovered
像handle
组件中的ScrollViewStyle
这个问题已经在三年两个月前被提出了。不幸地没有回答
更新
rowDelegate: Rectangle {
height: 30
property color selectedColor: styleData.hasActiveFocus ? "gray" : "lightgray"
color: styleData.selected ? selectedColor : mouse_area.hovered?"black":backgroundColor
MouseArea{
id:mouse_area
property bool hovered:false
propagateComposedEvents : false
hoverEnabled: true
anchors.fill: parent
onEntered: {
hovered=true
}
onExited: {
hovered=false;
}
}
}
添加:
MouseArea {
// ...
onPressed: mouse.accepted = false
}
将鼠标信号传播到表视图
并保持其选择行为。我尝试将MouseArea.propagateComposedEvents设置为0。但它仍然不起作用。请提供。顺便说一句,如果您使用QtQuick.Controls 1.4
,您必须手动设置选择,如果您提供自定义行委托。我使用的是QtQuick.Controls 1.4
TableView
QtQuick 2.13
TableView
我想没有那么有用。谢谢您提供完整的代码。它帮助了我,谢谢。它工作得很好。每个想要定制TableView的人都应该知道这一点,这将引入另一个问题。现在我不再能够为rowDelegate
获取单击的事件
和双击的事件。幸运的是,我在这里找到了答案