QT学习笔记(6):列表控件

(1)QListWidget:负责以列表形式显示数据,其中数据称为item,每个item至少包括图标,文本和关联数据。          添加项:ListWidget 的 addItem()函数 / insertItem()函数          示例:ui.listWidget->addItem(new QListWidgetItem( icon1,"xxxx"));
摘要由CSDN通过智能技术生成

QT里将List,Tree,Table统一按Model / View的构架进行设计(使用方法类似)

Model:管理数据项

View:负责显示



          QListWidget:负责以列表形式显示数据,其中数据称为item,每个item至少包括图标,文本和关联数据。

          添加项:ListWidget 的 addItem()函数 / insertItem()函数

          示例:ui.listWidget->addItem(new QListWidgetItem( icon1,"xxxx"));

          或者:QListWidgetItem xxx = new QListWidgetItem( icon1,"xxxx");

                      ui.listWidget->addItem(xxx);

          ListWidget被销毁时,对象跟着被销毁。

          移除项:takeItem()函数(只是移除项,不是销毁项,还可以重新插入列表。要删除必须手工delete item。要想有点删除后图标消                                                         失的效果,则需要先移除再删除)

          显示模式:列表方式 ListMode

                            图标方式 IconMode

          可用ui.listWidget的viewMode来检测当前是什么模式

          可用ui.listWidget的setViewMode来切换模式

    

          每一项都可以关联很多个数据(data),每个数据都有一个id(称为role)。

          关于role的说明:(来自于《Qt中的C++技术》这本书)

          

模型中的一个数据项会存放多个数据子项,其中一些是应用程序本身需要处理的数据,另外一些是Model/View框架中其他部分(比如视图对象、委托对象等)需要处理的。我们将一个数据子项所起的作用称为它的“角色”(role),因而一个数据项可被看作多个『角色,数据子项』对组成的集合。

例如,图13 8中的程序显示2011年世界10大新闻。左侧列表显示这些新闻的标题以及图标。用户单击其中一个后,程序在右上方显示该新闻的图片,在右下方以英文显示该新闻。如果用户将鼠标停留在列表中某个数据项的区域内,程序弹出一个提示框,显示该新闻中文版的文字。

我们使用一个具有列表结构的模型来表示这10条新闻,模型中的每个数据项表示一条新闻。新闻的标题(比如图中的“墨西哥海底雕塑”)是一个数据子项,对应的角色为DisplayRole,视图对象总是显示这个数据子项。新闻的图标是一个数据子项,对应的角色为DecorationRole。视图对象可能显示这个数据子项,也可能忽略它而只显示DisplayRole对应的数据子项。提示框中的中文文字是一个数据子项,对应的角色为ToolTipRole。只要用户将鼠标停留在一个数据项的区域内,视图对象就会显示这个数据子项。以上角色对应的数据子项和Model/View框架密切相关,框架中的其他对象比如视图对象、委托对象等会读取这些数据子项并做相应的处理。应用程序还可以在角色UserRole对应的数据子项中存放一些与具体应用相关的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值