我在使用时发现了一些奇怪的行为TableView.我们假设我们有以下代码:
TableView {
anchors.fill: parent
TableViewColumn { title: "column1"; role: "col1" }
TableViewColumn { title: "column2"; role: "col2" }
TableViewColumn { title: "column3"; role: "col3" }
model: ListModel {
ListElement { col1: "value1"; col2: "value2"; col3: "value3" }
ListElement { col1: "value4"; col2: "value5"; col3: "value6" }
ListElement { col1: "value7"; col2: "value8"; col3: "value9" }
}
Keys.onPressed: {
if(event.isAutoRepeat)
return;
if(event.key === Qt.Key_Space) {
console.log("Space pressed");
//event.accepted = true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
qml:空间紧迫
qml:空间紧迫
这意味着Keys.onPressed由于某种原因被称为两次.如果我设置event.accepted到true它按预期工作,但有时我只是想检查按下按钮不接受他们.例如,如果按下向上箭头,我不想接受它.在这种情况下,处理程序被调用两次.