14.QT-多元素控件|QListWidget|QTableWidget|QTreeWidget(C++)

Qt中提供的多元素控件有:

  • QListWidget
  • QListView
  • QTableWidget
  • QTableView
  • QTreeWidget
  • QTreeView

以QTableWidget和QTableView为例.

  • QTableView是基于MVC设计的控件.QTableView⾃⾝不持有数据.使⽤QTableView的时候需要⽤⼾创建⼀个Model对象(⽐如 QStandardModel ),并且把Model和QTableView关联起来.后续修改Model中的数据就会影响QTableView的显⽰;修改QTableView的显⽰也会影响到Model中的数据(双向绑定).
  • QTableWidget则是QTableView的⼦类,对Model进⾏了封装.不需要⽤⼾⼿动创建Model对象,直接就可以往QTableWidget中添加数据了.
    xxView是更底层的实现
    xxWidget是基于xxView封装而来的~~ 此处xxView是MVC结构的一种典型实现
    MVC也是软件开发中,非常经典的软件结构的组织形式了.
  • M model数据
  • V view 视图 (界面)
  • C controller控制器数据和视图之间的业务流程
    此处xxView只是负责实现了视图
    不负责数据如何存储表示,更不负责数据和视图之间的交互
    因此如果使用xxView就需要程序员自己实现model 和controller的部分.就比较麻烦

xxWidget基于xxView同时把model和controller都帮我们实现好了
拿过来就可以使用.人家提供了功能很方便的api,让我们直接就用

List Widget

使⽤ QListWidget 能够显⽰⼀个纵向的列表.形如:
![[Pasted image 20250421144854.png]]

核⼼属性

属性 说明
currentRow 当前被选中的是第⼏⾏
count ⼀共有多少⾏
sortingEnabled 是否允许排序
isWrapping 是否允许换⾏
itemAlignment 元素的对⻬⽅式
selectRectVisible 被选中的元素矩形是否可⻅
spacing 元素之间的间隔
核⼼⽅法
⽅法 说明
addItem(const QString&label)
addItem(QListWidgetItem*item)
列表中添加元素.
currentItem() 返回QListWidgetItem*表⽰当前选中的元素
setCurrentItem(QListWidgetItem*item) 设置选中哪个元素
setCurrentRow(int row) 设置选中第⼏⾏的元素
insertItem(const QString& label,int
row)
insertItem(QListWidgetItem*item, int
row)
在指定的位置插⼊元素
item(int row) 返回QListWidgetItem*表⽰第row⾏的元素
takeItem(int row) 删除指定⾏的元素,返回QListWidgetItem*表⽰是哪个元素被删 除了
核⼼信号
⽅法 说明
currentItemChanged(QListWidgetItem*
current, QListWidgetItem*old)
选中不同元素时会触发.参数是当前选中的元素和之前选中的元素.
currentRowChanged(int) 选中不同元素时会触发.参数是当前选中元素的⾏数.
itemClicked(QListWidgetItem*item) 点击某个元素时触发
itemDoubleClicked(QListWidgetItem*item) 双击某个元素时触发
itemEntered(QListWidgetItem*item) ⿏标进⼊元素时触发
在上述介绍中,涉及到⼀个关键的类, QListWidgetItem .
这个类表⽰ QListWidget 中的⼀个元素.
核⼼⽅法如下,本质上就是⼀个"⽂本+图标"构成的
⽅法 说明
setFont 设置字体
setIcon 设置图标
setHidden 设置隐藏
setSizeHint 设置尺⼨
setSelected 设置是否选中
setText 设置⽂本
setTextAlignment 设置⽂本对⻬⽅式.
代码⽰例:使⽤ListWidget
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值