Qt—自定义View

本文介绍了如何在Qt中实现一个自定义View,包括选择继承QAbstractItemView、实现纯虚函数以及重载所需虚函数。内容涵盖图案自定义、响应鼠标点击和键盘按键。通过实例详细讲解了各个步骤,最终实现四个不同颜色格子位于窗口角落,响应鼠标点击和右箭头按键移动选中格子的功能。
摘要由CSDN通过智能技术生成

多个View内部可以映射到同一个数据模型,也可以映射不同的数据结构;可以使用所有数据,也可以只使用部分数据。因为视图层与数据层的分离,操作相对比较灵活。

1. 实现一个自定义View

这里我们来实现一个自定义View,住要包含一下几个功能:

  1. 图案自定义:包含四个颜色不一的格子,大小小于整个窗口的1/4, 分别位于窗口的四个角落。
  2. 响应鼠标点击:鼠标点击格子区域,绘制高亮的内方格,点击非格子区域无反应。
  3. 响应右箭头(→)按键:点击选中格子后,按右箭头按键移动到下一个格子,并选中。

嗯,大概就是下面设计图的样子,并且我们把左上角右上角右下角左下角的数据分别约定为QModelIndex(0,0)、QModelIndex(0,1)、QModelIndex(1,0)和QModelIndex(11)。

本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓ 

 

1.1 选择合适的视图类继承

与Model子类化一样,编写自定义视图的时候也有两种选择:继承QAbstractItemView、继承Qt提供的标准View。相对来说,继承抽象基类QAbstractItemView需要花较多的功夫,继承标准View类则比较快。当自己要使用的视图类与某个标准View相近的时候,继承这个View并且重写自己需要的功能函数是最方便的。

Qt提供了一下几个标准View(与标准Model相对应):

  • QListView。
  • QTableView。
  • QTreeView。
  • QColumnView。
  • QHeaderView:用来提供表头视图给其他View使用。

其中QColumnView比较特殊,它是一个多列视图,每一列是一个QListView,点击前一列的某项会触发下一列的内容内变:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值