无法在 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);
我在 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);