2015-11-04 46 views
1

我正在学习Qt Quick来编写文件管理器。在我之前提到的answer之后,现在我试图通过双击TableView中的一行(对应于一个文件夹)来浏览目录树,也就是说,该视图应该更改为我刚才的文件夹内的内容双击。通过在TableView中双击文件夹导航

从概念上讲,我需要告诉onDoubleClicked改变FolderListModelfolder财产,对不对?但是我不清楚如何获得与点击行对应的模型元素?硬编码的例子是:

TableView { 
    onDoubleClicked: { 
     folderModel2.folder = "file:///bin"; 
    } 
} 

但我想分配给folder属性对应于行我双击了模型元素的作用fileURL。顺便说一下,我不打算在TableView中明确显示fileURL,所以我必须自己获取模型元素,而不仅仅是视图。

再次,起始码是here。谢谢!

回答

1

对于我来说,在黑暗中行走对我来说感觉像是一件令人望而生畏的事情,但是在我写下这个问题之后,它变得更加清晰。到目前为止,工作的解决方案:

TableView { 
    onDoubleClicked: { 
     var cur_idx = tableView1.currentRow; 
     if (folderModel2.isFolder(cur_idx)) { 
      folderModel2.folder = folderModel2.get(cur_idx, "fileURL"); 
     } 
    } 
} 

请让我知道是否有更好的解决方案,或者如果我当前的代码在QML的长期弊端。谢谢阅读。

+0

我不认为有任何其他的方式可以从QML做到这一点,它看起来很好,我很好,工作。 :) – Mitch