无法在 QML 中 select 行 TableView

Can't select row of TableView in QML

我在 QML 中创建了一个 TableView,连接到 SoftFilterProxyModel。数据显示正常,当我单击一行时,我的“selectRow”函数运行,并接收到正确的行号。但是,没有显示为已选择。我的设计基于

相关代码为:

ItemSelectionModel {
    id: companyTableISM
    model: companySFPM
}

function selectRow(row) {
    console.log("In selectRow row "+row);
    companyTableISM.select(companySFPM.index(row, 0), ItemSelectionModel.select | ItemSelectionModel.current );
    console.log(companyTableISM.selectedIndexes);
    console.log(companyTableISM.hasSelection);
}

所以当我点击一行时它输出:

qml: In selectRow row 3
qml: []
qml: false

由于我的 selectRow 函数接收到正确的行号,模型 (companySFPM) 与 TableView 使用的模型相匹配,为什么我的 2 个日志语句显示未选择任何内容和错误 (hasSelection)?

我相信你在这行中有两个错别字:

ItemSelectionModel.select | ItemSelectionModel.current

注意到枚举类型的大写了吗?应该是:

ItemSelectionModel.Select | ItemSelectionModel.Current

Current 和 Select 是 selection flags 枚举 select()。有关更多 selection 标志,您可以阅读 this 。 将 select 和 current 的 s 和 c 替换为大写字母。

companyTableISM.select(companySFPM.index(row, 0), ItemSelectionModel.Select | ItemSelectionModel.Current);