我正在学习Qt快速编写文件管理器。在answer之前的问题之后,现在我尝试通过双击TableView
中的行(对应于文件夹)来浏览目录树,也就是说,视图应该是更改为我刚刚双击的文件夹内的内容。
从概念上讲,我需要告诉onDoubleClicked
更改folder
的{{1}}属性,对吗?但是我不清楚如何获得与点击的行相对应的模型元素?一个硬编码的例子是:
FolderListModel
但我想为TableView {
onDoubleClicked: {
folderModel2.folder = "file:///bin";
}
}
属性分配与我双击的行对应的模型元素的角色fileURL
。顺便说一下,我没有计划在folder
中明确显示fileURL
,因此我必须自己获取模型元素,而不仅仅是视图。
同样,起始代码为here。谢谢!
答案 0 :(得分:1)
对于我来说,在黑暗中行走感觉真是一件令人生畏的事情,但在我写完问题之后,更清楚地看到了什么。到目前为止,一个有效的解决方案:
TableView {
onDoubleClicked: {
var cur_idx = tableView1.currentRow;
if ( folderModel2.isFolder(cur_idx) ) {
folderModel2.folder = folderModel2.get(cur_idx, "fileURL");
}
}
}
如果有更好的解决方案,或者我目前的代码在QML方面存在不当行为,请告诉我。谢谢你的阅读。