Qt扫盲-QListWidget理论总结

1. 概念

QListWidget 是一个继承自 QListView 的类,其实就是 QListView 的一个很经典的 列表 交互控件,在QListWidget 里面提供了非常方便的基于 每一个 QListWidgetItem 的 管理 类,从添加、选择、删除 列表子Item到 QListWidget 里,都是封装的非常完善的。对于 每一个列表项的样子的话,是得靠QListWidgetItem 自己设置的,比如说文字对齐啊,背景大小、图标之类的。

如果要使用更加灵活的方式的话,最好还是使用 QListView 来显示,QListWidget 也不能显示过量的数据,过量数据的时候性能很不好。也不够灵活,但是一般情况下还是够用的哈。
在这里插入图片描述

QListWidget 的构造方法是和普通控件是一样的。

QListWidget *listWidget = new QListWidget(this);

2. 添加列表项

有两种方法可以将Item添加到列表中:

  1. 可以使用QListWidget 作为其父部件来构造它们
  2. 或者可以在没有父部件的情况下构造它们并稍后添加到列表中。
    如果在构造Item时QListWidget 已存在,则第一种方法更易于使用:
new QListWidgetItem(tr(“Oak”), listWidget);
new QListWidgetItem(tr(“Fir”), listWidget);
new QListWidgetItem(tr(“Pine”), listWidget);

如果您需要将新Item插入到列表中的特定位置,则应在没有父部件的情况下构造它。然后应该使用 insertItem() 函数将其放置在列表中。QListWidget 将获得Item的所有权。

QListWidgetItem *newItem = new QListWidgetItem;
newItem->setText(itemText);
listWidget->insertItem(row, newItem);

对于多个Item,可以改用 insertItems() 。

3. 列表其他属性

QListWidget 的 selectionMode() 方法决定列表中可以同时选择多少个Item。同时 setSelectionMode() 就是来创建复杂的Item选择。

  1. 列表中的项数是使用 count() 函数确定。
  2. 要从列表中删除 Item,请使用 takeItem() 。
  3. 列表中的当前项可以使用 currentItem() 找到,并使用 setCurrentItem() 进行更改。用户还可以通过使用键盘导航或单击其他Item来更改当前Item。
  4. 是否可用排序用 isSortingEnabled() 来确定,当然可呀用 setSortingEnabled(bool enable) 同样也可以设置
  5. findItems() 来查找 满足条件的 item

4. 常用信号

信号名含义
currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)发生选择项切换时
currentRowChanged(int currentRow)选择项的 选择行数改变时
currentTextChanged(const QString &currentText)就是Item 项的文字改变,前提是 Item 可以编辑哈
itemActivated(QListWidgetItem *item)被激活时发出信号。Item被激活当用户单击或双点击的时候, 这具体是取决于系统配置。当用户按下激活键(在Windows和X11这是返回键,在Mac OS X Command + O) 也会激活。
itemChanged(QListWidgetItem *item)当item 的数据改变时 ,可能是 文字被编辑了,图标变了,被checkedl了
itemClicked(QListWidgetItem *item)就是item被单击
itemDoubleClicked(QListWidgetItem *item)就是item被双击
itemEntered(QListWidgetItem *item)就是鼠标进入,一般不用
itemPressed(QListWidgetItem *item)就是item被按下了
itemSelectionChanged()就是选择项的时候发生改变了,一般会配合 selectedItems() 来获取被选择的对象。

5. 槽函数

信号名含义
clear()移除所有的Item
scrollToItem()让 列表滚动到指定的 Item 项的位置,一般会和 Search 的时候 配合使用

6. QListWidgetItem 简述

QListWidgetItem 表示 QListWidget 中的单个Item。每个Item可以包含多条信息,并将适当地显示它们。

其实知道 QListWidgetItem 能显示并编辑文本、还能check 就够用了。

QListWidgetItem 通常用于显示 文本 text() 和 图标 icon () 。这些是使用 setText() 和 setIcon() 函数设置的。文本的外观可以使用 setFont() 、setForeground() 和 setBackground() 进行自定义。列表项中的文本可以使用 setTextAlignment() 函数对齐。工具提示、状态提示和“这是什么?”帮助可以添加到使用 setToolTip() 、setStatusTip() 和 setWhatsThis() 的列表项中。
默认情况下,Item是 enabled, selectable, checkable的,并且配置 成可拖放、可编辑、可点击 check 的。这都是属于Item 的标志。

每个Item的标志可以通过使用适当的值调用setFlags() 来更改(参见Qt::ItemFlags)。可以使用 setCheckState() 函数检查、取消选中和部分检查可检查的Item。相应的 checkState() 函数指示Item的当前检查状态。
常用的标志像下面

标志名含义
Qt::NoItemFlags完全禁用
Qt::ItemIsSelectableitem可被选中
Qt::ItemIsEditableitem可被编辑
Qt::ItemIsDragEnableditem可被 拖住
Qt::ItemIsDropEnableditem可被 放置
Qt::ItemIsUserCheckableitem可用 check 的类似 QCheckBox
Qt::ItemIsEnableditem可用不

isHidden() 函数可用于确定Item是否隐藏。要隐藏Item,请使用 setHidden() 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太阳风暴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值