qt - QML TableView 鼠标区域不会将点击传播到选择模型
问题描述
我有TableView
一个委托,其中包含一个MouseArea
. 我想将点击传播到 ,TableView
以便项目的选择仍然有效。但是,我MouseArea
现在无法选择TableView
. 我怎样才能改变这个?
TableView {
id: tableView
model: testModel
selectionMode: SelectionMode.SingleSelection
Component {
id: testDelegate
Item {
id: delegateItem
Text{
id: ctext
text: styleData.value
color: styleData.textColor
}
MouseArea {
id: mouseArea
acceptedButtons: Qt.LeftButton | Qt.RightButton
anchors.fill: parent
propagateComposedEvents: true
onClicked: {
console.log("click");
mouse.accepted = false
}
}
}
}
TableViewColumn {
role: "TestRole"
delegate: testDelegate
}
}
解决方案
如果您不介意使用onPressed
事件而不是onClicked
用户交互,传播事件也将允许在TableView
(如果需要,包括ExtendedSelection
模式)中进行选择:
MouseArea {
// ...
onPressed: {
mouse.accepted = false
}
}
推荐阅读
- c# - 检查是否在井字游戏 2D 数组 c# 中获胜
- mysql - 我如何才能找到哪个类别的产品出货量最多以及该类别的销售净收入?
- python - Django在Admin中显示ForeignKey字段
- javascript - AngularJS ng-repeat 很慢
- python - VTK:使用 vtkDelaunay2D 创建多边形和孔不起作用
- c++ - C++ 比较 std::array 和 std::array 只有一个变量
- javascript - Discord Bot - 未定义成员
- python - 在 ROBOT Framework 中插入输入后如何按 TAB 或 ENTER 键
- bash - 期望脚本:创建方法以使用 ssh 登录远程服务器并在方法返回后发送命令
- google-sheets - 如何使用 Google 表格中的查询功能在多个 WHERE AND 和 OR 条件下进行透视