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]]](https://i-blog.csdnimg.cn/direct/059d292040034fce8d4d32d015b26b3d.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 | 设置⽂本对⻬⽅式. |

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



