要了解qt的model/view編程,我們首先需要編寫一個能夠具有代表性的例子作為切入點市袖,為了方便大家咆贬,我已經(jīng)寫好了一個現(xiàn)成的例子供大家參考:
我們可以看到demo1的效果圖如下:
兩個視圖實際上使用了同一個data model,但是展示的內(nèi)容涧团、路徑和方式完全不同切油,可見QFileSystemModel的強大蝙斜。另外,這個例子中還包含了一些關(guān)于view使用的一些小技巧澎胡,希望大家也能夠注意孕荠。
在這個例子中娩鹉,我們可以注意到QFileSystemModel默認是ReadOnly的,我們在設(shè)置它可編輯之后稚伍,就可以對有修改權(quán)限的文件進行重命名弯予,在這里我設(shè)置了重命名的出發(fā)方式為DoubleClick。我們需要注意QFileSystemModel對文件的修改是永久性的个曙,所以一定不要對重要的文件進行隨意的重命名锈嫩。
我們選擇QFileSystemModel入門qt的model/view編程似乎是個不錯的選擇,因為它如此強大垦搬,封裝的也非常友好呼寸,對它的操作猶如直接在命令行中進行文件的管理一般輕松,當然qt官方的例子中也有很多可以參考的簡單示例悼沿,如果大家感興趣也可以下下來看看。
在這個例子中骚灸,我們發(fā)現(xiàn)我們對視圖的編輯的操作并沒有看到qt的信號和槽糟趾,而實際上這些都是在整個mode/view示例中完成了的,如果我們要更深入的了解model和view的原理的話甚牲,首先的了解他們是如何交互的——其實义郑,大部分時候,我們?yōu)榱诉_到效果丈钙,并不需要去洞悉源碼非驮,而只需要基于現(xiàn)有的框架針對目前代碼的不足進行補充,我們下面的一個例子就是對當前例子的一個補充性質(zhì)的例子雏赦。