Qt Model/View之实现Item自定义显示

本文介绍如何通过子类化QItemDelegate实现Qt中的自定义Item显示。内容包括代理类的作用,QItemDelegate和QStyleItemDelegate的区别,以及在TreeView中自定义显示的demo概述,特别是paint()和sizeHint()方法的实现,用于绘制不同类型的设备和节点的三态选择效果。提供有完整的Qt5.6.2+MSVC2015源码示例。
摘要由CSDN通过智能技术生成

介绍

  • Delegate 代理类被用来显示和编辑Item项。为了能实现自定义的Item,需要子类化代理类,并实现自己的paint() 和 sizeHint()方法。paint()方法会被每个Item调用,来绘制自定义的样式和相应的数据类型,sizeHint()方法用于指示每个Item的大小。在重绘Item在View中的显示时,QStyle类提供了很多的细节样式。
  • 在Qt4.4以后,有两个代理类QItemDelegate和QStyleItemDelegate继承自QAbstractItemDelegate,缺省的代理是QStyleItemDelegate,这两个类是相互独立的两个类,都用来显示和编辑Item项。这两个类之前不同之处在于,QStyleItemDelegate使用当前样式绘制Item,因此建议当自定义代理或者使用Qt样式表时,将QStyleItemDelegate作为子类的基类来使用。除非自定义代理需要使用样式来绘制,否则他们两个类所需要的代码应该是一样的。

  • 本文主要使用子类化代理,实现了TreeView中Item的自定义显示。

demo概述

废话不多说,先看效果图,如果想实现这类的数据显示,那么,这篇文章的demo会对你有所启发。

三类数据 语言类数据全选选中部分水果类

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值