白银——对上一个例子的补充

对于上一个例子,我们的view路径已经定死了,不能够进行路径的跳转,如果细心的同学可能也会发现我们默认触发编辑的行为也是有限的,那么为了对这两个问题进行改进,我在demo1的基础上给出了demo2:

demo2

右键菜单的编辑选项,要截取菜单不是一件容易的事情

对比demo1,我把view item的双击文件夹的行为变更为跳转的行为,双击文件的行为变成使用默认应用打开的行为,为了实现这样的功能,我们首先需要连接view的双击信号,然后获取双击item的信息并且进行处理;另外,我把编辑文件名的操作放到了一个右键菜单中,这也是本来view默认不支持的操作形式。

从demo2中,我们已经能够窥见model/view的交互形式了,model/view机制实际上是以内部信号处理+外部(开发者)定制信号处理的方式进行设计的,通过这样的形式,我们不需要了解底层的细节,也能够基于它的框架进行开发,感觉一下子简单了不少。由于复杂的逻辑交互已经被内置的流程处理,剩下来的工作看起来就非常的高大上了,对于一般的开发者来说,熟练掌握这种demo2中的开发形式足矣。

值得一提的是在Qt5中,Qt的信号槽已经支持了c++的lambda表达式,这极大的简化了我们构建交互逻辑的难度,虽然可能会带来一些其它的问题,但这一重要的特性仍然值得推崇和使用。qt的信号槽和lambda不是本书的重点,如果有兴趣或者有疑问,请大家自信百度参考其它资料补充这一块的知识。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 信号和槽(Signals and Slots) Qt库第一个认识到在几乎所有情况下,程序员不需要或甚至不想知道所有...
    珞珈村下山阅读 9,886评论 0 23
  • 发出别人的声音 自我的嘴里 说出别人的话 因为我是空的 没有心 一个躯壳 就剩下听从 可为什么还要冷眼 看着这些世...
    云里风铮阅读 377评论 3 9
  • 成长没有终点,所以,我没有今天成长,明天休息的概念。因为我认为,只要活着,成长就一直在路上。 我是猴子,爱与智慧同...
    读李阅读 83评论 0 0
  • 三点多的时候,母亲给我打来了电话,才开口,就说,犯错误了,不要吵她啊,不要告诉父亲啊,也不要告诉弟弟啊。我一听母亲...
    双鱼姐姐0阅读 111评论 0 1
  • 最近项目中做一款阅读器,其中包含夜间模式和白天模式切换功能,最开始的想法是当点击了夜晚模式,手动更新背景颜色、文字...
    史蒂芬诺夫斯基阅读 4,400评论 3 16