要了解qt的model/view编程,我们首先需要编写一个能够具有代表性的例子作为切入点,为了方便大家,我已经写好了一个现成的例子供大家参考:
我们可以看到demo1的效果图如下:
demo1
两个视图实际上使用了同一个data model,但是展示的内容、路径和方式完全不同,可见QFileSystemModel的强大。另外,这个例子中还包含了一些关于view使用的一些小技巧,希望大家也能够注意。
在这个例子中,我们可以注意到QFileSystemModel默认是ReadOnly的,我们在设置它可编辑之后,就可以对有修改权限的文件进行重命名,在这里我设置了重命名的出发方式为DoubleClick。我们需要注意QFileSystemModel对文件的修改是永久性的,所以一定不要对重要的文件进行随意的重命名。
我们选择QFileSystemModel入门qt的model/view编程似乎是个不错的选择,因为它如此强大,封装的也非常友好,对它的操作犹如直接在命令行中进行文件的管理一般轻松,当然qt官方的例子中也有很多可以参考的简单示例,如果大家感兴趣也可以下下来看看。
在这个例子中,我们发现我们对视图的编辑的操作并没有看到qt的信号和槽,而实际上这些都是在整个mode/view示例中完成了的,如果我们要更深入的了解model和view的原理的话,首先的了解他们是如何交互的——其实,大部分时候,我们为了达到效果,并不需要去洞悉源码,而只需要基于现有的框架针对目前代码的不足进行补充,我们下面的一个例子就是对当前例子的一个补充性质的例子。