2015-11-04 24 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