要了解qt的model/view編程,我們首先需要編寫一個能夠具有代表性的例子作為切入點,為了方便大家,我已經(jīng)寫好了一個現(xiàn)成的例子供大家參考:
我們可以看到demo1的效果圖如下:

demo1
兩個視圖實際上使用了同一個data model,但是展示的內(nèi)容、路徑和方式完全不同,可見QFileSystemModel的強大。另外,這個例子中還包含了一些關于view使用的一些小技巧,希望大家也能夠注意。
在這個例子中,我們可以注意到QFileSystemModel默認是ReadOnly的,我們在設置它可編輯之后,就可以對有修改權(quán)限的文件進行重命名,在這里我設置了重命名的出發(fā)方式為DoubleClick。我們需要注意QFileSystemModel對文件的修改是永久性的,所以一定不要對重要的文件進行隨意的重命名。
我們選擇QFileSystemModel入門qt的model/view編程似乎是個不錯的選擇,因為它如此強大,封裝的也非常友好,對它的操作猶如直接在命令行中進行文件的管理一般輕松,當然qt官方的例子中也有很多可以參考的簡單示例,如果大家感興趣也可以下下來看看。
在這個例子中,我們發(fā)現(xiàn)我們對視圖的編輯的操作并沒有看到qt的信號和槽,而實際上這些都是在整個mode/view示例中完成了的,如果我們要更深入的了解model和view的原理的話,首先的了解他們是如何交互的——其實,大部分時候,我們?yōu)榱诉_到效果,并不需要去洞悉源碼,而只需要基于現(xiàn)有的框架針對目前代碼的不足進行補充,我們下面的一個例子就是對當前例子的一個補充性質(zhì)的例子。