Qt:QListWidget
0、说明
QListWidget指明一个基于Item的List Widget。

构造
QListWidget与QListView类似,都可以显示一列Item,区别在于前者可以往其中增删Item。
QListWidget的构造方法和其他Widgets的构造方法类似:
QListWidget *listWidget = new QListWidget(this);
选中
调用selectionMode()可以知道该ListWidget一次可以选中多少个Item,是否可以构造复杂的选项。调用setSelectionMode()可以设置该变量。
添加与移除
有两种方法可以往List中增加Items:
添加单个Item
①构造Item时,指明所在ListWidget,就可以在创建完成后自动加进去;
new QListWidgetItem(tr("Oak"), listWidget);
new QListWidgetItem(tr("Fir"), listWidget);
new QListWidgetItem(tr("Pine"), listWidget);
②构造Item,不指定所在ListWidget;等待ListWidget调用insertItem()添加。
QListWidgetItem *newItem = new QListWidgetItem;
newItem->setText(itemText);
listWidget->insertItem(row, newItem);
添加多个Items
如果有多个Items,可以用insertItems()。
移除:takeItem()
统计:count()
当前Item
通过currentItem()得到当前Item,通过setCurrentItem()改变当前Item。当然我们也能通过鼠标或键盘直接选中不同的Item。
每当当前Item改变时,发送currentItemChanged()信号,信号中保存有修改前后的两个Item。
1、模块和加载项
| Header: | #include <QListWidget> |
| qmake: | QT += widgets |
| Inherits: | QListView |
2、构造
| QListWidget(QWidget *parent = nullptr) |
3、实例字段
字段 |
说明 |
getter、setter |
信号 |
|
| int | count | 一共多少Item | count() | |
| int | currentRow | 当前行 |
currentRow() setCurrentRow(int row) |
currentRowChanged(int currentRow) |
| bool | sortingEnabled | 可否排序 |
isSortingEnabled() setSortingEnabled(bool enable) |
6、实例方法
返回值类型 |
方法 |
说明 |
| void |
addItem(const QString &label) addItem(QListWidgetItem *item) |
在List末尾加入一个Item(多次加入同一个Item会导致不可预知的错误) |
| void | addItems(const QStringList &labels) | 在List末尾插入若干text为labels中的Label的Item |
| void | closePersistentEditor(QListWidgetItem *item) | 关闭给定Item上的编辑器 |
| int | count() | 一共多少个Item |
| QListWidgetItem * | currentItem() | 当前Item |
| int | currentRow() | 当前Item所在行 |
| void | editItem(QListWidgetItem *item) | 如果item可编辑,就开始编辑 |
| QList<QListWidgetItem *> | findItems(const QString &text, Qt::MatchFlags flags) | 查找Text符合给定的text的Items |
| void |
insertItem(int row, QListWidgetItem *item) insertItem(int row, const QString &label) |
在指定行插入Item |
| void | insertItems(int row, const QStringList &labels) | 在指定行插入多个Items |
| bool | isPersistentEditorOpen(QListWidgetItem *item) | item上的编辑器是否开启 |
| bool | isSortingEnabled() | 是否允许排序 |
| QListWidgetItem * | item(int row) | 指定行上的Item |
| QListWidgetItem * |
itemAt(const QPoint &p) itemAt(int x, int y) |
指定位置处的Item 该位置依赖于Widget的viewport()说明的坐标系 |
| QWidget * | itemWidget(QListWidgetItem *item) | 返回一个Widget用于展示给定Item |
| void | openPersistentEditor(QListWidgetItem *item) | 在指定Item上打开编辑器 |
| void | removeItemWidget(QListWidgetItem *item) | 移除用于展示给定Item而设置的Widget |
| int | row(const QListWidgetItem *item) | Item所在行 |
| void | selectedItems() | 当前选中的Item |
| setCurrentItem(QListWidgetItem *item) | 设置当前Item | |
| setCurrentRow(int row) | 设置当前行 | |
| setItemWidget(QListWidgetItem *item, QWidget *widget) | 设置Widget用于展示给定Item | |
| setSortingEnabled(bool enable) | ||
| void | sortItems(Qt::SortOrder order = Qt::AscendingOrder) | 按照order指定的规则进行排序 |
| QListWidgetItem * | takeItem(int row) | 提取并移除指定行的Item |
| QRect | visualItemRect(const QListWidgetItem *item) | 返回一个只包含给定Item的矩形框QRect |
7、信号
信号 |
说明 |
| currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous) | 每当List中的当前的Item改变时,参数分别标明改变前后的Item |
| currentRowChanged(int currentRow) |
当前Item修改时发送该信号。currnetRow指明该Item所在行。 |
| currentTextChanged(const QString ¤tText) | 当前Item修改时发送该信号。currnetText指明该Item的文本。 |
| itemActivated(QListWidgetItem *item) | 每当List中参数指明的Item激活(选中)时,发送该信号 |
| itemChanged(QListWidgetItem *item) | 每当List中参数指明的Item改变时,发送该信号 |
| itemClicked(QListWidgetItem *item) | 每当List中参数指明的Item被单击时,发送该信号 |
| itemDoubleClicked(QListWidgetItem *item) | 每当List中参数指明的Item被双击时,发送该信号 |
| itemEntered(QListWidgetItem *item) | 每当鼠标焦点进入List中的某个Item时,发送该信号,参数指明这个Item |
| itemPressed(QListWidgetItem *item) | 每当List中的某个Item被按时,发送该信号,参数指明这个Item |
| itemSelectionChanged() | 每当选中的Item改变时发送该信号 |
8、槽
槽 |
说明 |
| clear() | 清空List |
| scrollToItem(const QListWidgetItem *item, QAbstractItemView::ScrollHint hint = EnsureVisible) | 上下滚动视图,以保证item始终可见 |
Qt:QListWidget的更多相关文章
- Qt 学习之路 2(42):QListWidget、QTreeWidget 和 QTableWidget
Qt 学习之路 2(42):QListWidget.QTreeWidget 和 QTableWidget 豆子 2013年2月5日 Qt 学习之路 2 38条评论 上一章我们了解了 model/vie ...
- Qt学习——QListWidget控件的使用
转载:GDUTLYP Qt提供QListWidget类列表框控件用来加载并显示多个列表项.QListWidgetItem类就是列表项类. 一般列表框控件中的列表项有两种加载方式: 一种是由用户手动添加 ...
- Qt:禁止qDebug的输出
Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT
- Qt:使用自定义的字体
Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体 QFontDatabase::addApplicationFont("XENOTRON.TTF" ...
- Qt:QJsonObject
0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...
- Qt:QJsonValue
0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...
- Qt:QJsonArray
0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...
- Qt:QUrl构造时的qrc前缀
参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...
- PyQt(Python+Qt)学习随笔:QListWidget对项进行排序的sortItems方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QListWidget的sortItems方法用于对列表部件中所有项按参数进行排序,相关调用语法如下 ...
随机推荐
- K8S探针和SVC,POD原理
(6)容器是否健康: spec.container.livenessProbe.若不健康,则Pod有可能被重启(可配置策略) (7)容器是否可用: spec.container.readiness ...
- 『无为则无心』Python基础 — 43、文件备份的实现
目录 1.需求 2.步骤 3.代码实现 (1)接收用户输入目标文件名 (2)规划备份文件名 (3)备份文件写入数据 (4)思考 (5)完整编码 4.再来一个小练习 1.需求 用户输入当前目录下任意文件 ...
- 分页方法需要参数(当前页数,总数据量,拿到query的值)
class Pagination: def __init__(self, page_num, all_count ,params=None,per_num=10,max_show=11): " ...
- 如何在 VS Code 中搭建 Qt 开发环境
前言 VS Code 高大上的界面.强大的智能联想和庞大的插件市场,着实让人对他爱不释手.虽然可以更改 Qt Creator 的主题,但是 Qt Creator 的代码体验实在差劲.下面就来看看如何在 ...
- AT3527 [ARC082D] Sandglass
解法一 直接考虑在初始为 \(a\) 的情况下时刻 \(t\) 时 \(A\) 中剩余的沙子是行不通的,不妨反过来考虑在时刻 \(t\) 每个初始值 \(a\) 的答案,令其为 \(f_t(a)\). ...
- 趁着同事玩游戏偷偷认识k8s一家子补补课
趁着同事玩偷偷认识k8s一家子补补课 Kubernetes集群这个大家庭在容器化时代能够新军崛起,要感谢其众多可靠稳定,工作认真负责的优质成员. 这些兄弟姐妹们为集群提供故障转移和高可用性,保证k8s ...
- 我对JavaWeb中中文URL编码的简单总结
1.application/x-www-form-urlencoded 它是一种编码类型.当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www-form-u ...
- VC 获取已系统安装的字体
转载请注明来源:https://www.cnblogs.com/hookjc/ BOOL CALLBACK EnumFonts(CONST LOGFONT* lplf, CONST TEXTMETRI ...
- ubuntu关机重启命令介绍
转载请注明来源:https://www.cnblogs.com/hookjc/ 重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shut ...
- 通过版本号来判断用户是否是第一次登陆----By张秀清
@interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)appl ...