QListWidgetItem Class
QListWidgetItem 类提供了一个用于与QListWidget 项视图类配合使用的项。更多内容...
| 头文件: | #include <QListWidgetItem> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
公共类型
| enum | ItemType { Type, UserType } |
公共函数
| QListWidgetItem(QListWidget *parent = nullptr, int type = Type) | |
| QListWidgetItem(const QString &text, QListWidget *parent = nullptr, int type = Type) | |
| QListWidgetItem(const QIcon &icon, const QString &text, QListWidget *parent = nullptr, int type = Type) | |
| QListWidgetItem(const QListWidgetItem &other) | |
| virtual | ~QListWidgetItem() |
| QBrush | background() const |
| Qt::CheckState | checkState() const |
| virtual QListWidgetItem * | clone() const |
| virtual QVariant | data(int role) const |
| Qt::ItemFlags | flags() const |
| QFont | font() const |
| QBrush | foreground() const |
| QIcon | icon() const |
| bool | isHidden() const |
| bool | isSelected() const |
| QListWidget * | listWidget() const |
| virtual void | read(QDataStream &in) |
| void | setBackground(const QBrush &brush) |
| void | setCheckState(Qt::CheckState state) |
| virtual void | setData(int role, const QVariant &value) |
| void | setFlags(Qt::ItemFlags flags) |
| void | setFont(const QFont &font) |
| void | setForeground(const QBrush &brush) |
| void | setHidden(bool hide) |
| void | setIcon(const QIcon &icon) |
| void | setSelected(bool select) |
| void | setSizeHint(const QSize &size) |
| void | setStatusTip(const QString &statusTip) |
| void | setText(const QString &text) |
(since 6.4) void | setTextAlignment(Qt::Alignment alignment) |
| void | setToolTip(const QString &toolTip) |
| void | setWhatsThis(const QString &whatsThis) |
| QSize | sizeHint() const |
| QString | statusTip() const |
| QString | text() const |
| int | textAlignment() const |
| QString | toolTip() const |
| int | type() const |
| QString | whatsThis() const |
| virtual void | write(QDataStream &out) const |
| virtual bool | operator<(const QListWidgetItem &other) const |
| QListWidgetItem & | operator=(const QListWidgetItem &other) |
相关的非成员
| QDataStream & | operator<<(QDataStream &out, const QListWidgetItem &item) |
| QDataStream & | operator>>(QDataStream &in, QListWidgetItem &item) |
详细说明
QListWidgetItem 表示QListWidget 中的单个项目。每个项目可包含多条信息,并会以适当的方式显示这些信息。
项目视图便利类采用经典的基于项目的接口,而非纯粹的模型/视图方法。若需更灵活的列表视图控件,建议结合标准模型使用QListView 类。
通过指定列表控件,可在创建列表项时将其自动插入到列表中:
new QListWidgetItem(tr("Hazel"), listWidget);此外,列表项也可以在不依赖父控件的情况下创建,随后通过调用 `QListWidget::insertItem()` 将其插入列表。
列表项通常用于显示 `text()` 和 `icon()`。这些内容可通过 `setText()` 和 `setIcon()` 函数进行设置。文本的外观可通过 `setFont()`、`setForeground()` 和 `setBackground()` 进行自定义。列表项中的文本可使用 `setTextAlignment()` 函数进行对齐。 可通过setToolTip()、setStatusTip() 和setWhatsThis() 向列表项添加工具提示、状态提示和“这是什么?”帮助。
默认情况下,项目处于启用状态,可被选中、可被勾选,并且可以作为拖放操作的源。
可以通过调用setFlags() 并传入相应的值来更改每个项目的标志(参见Qt::ItemFlags )。可选中项目可以使用setCheckState() 函数进行选中、取消选中和部分选中。相应的checkState() 函数指示项目的当前选中状态。
可使用isHidden() 函数来判断项目是否被隐藏。若要隐藏项目,请使用setHidden()。
子类化
在继承 QListWidgetItem 以提供自定义项目时,可以为其定义新类型,以便将其与标准项目区分开来。对于需要此功能的子类,请确保在您的构造函数中,调用基类构造函数时,将 new 类型值设置为大于或等于UserType 。
另请参阅 QListWidget 、模型/视图编程、QTreeWidgetItem 以及QTableWidgetItem 。
成员类型文档
enum QListWidgetItem::ItemType
此枚举描述了用于描述列表控件项的类型。
| 常量 | 值 | 描述 |
|---|---|---|
QListWidgetItem::Type | 0 | 列表控件项的默认类型。 |
QListWidgetItem::UserType | 1000 | 自定义类型的最小值。小于 UserType 的值由 Qt 保留。 |
您可以在QListWidgetItem 的子类中定义新的用户类型,以确保自定义项得到特殊处理。
另请参阅 type()。
成员函数文档
[explicit] QListWidgetItem::QListWidgetItem(QListWidget *parent = nullptr, int type = Type)
使用给定的parent ,基于指定的type 构建一个空的列表控件项。如果未指定parent ,则需要通过QListWidget::insertItem()将该项插入到列表控件中。
此构造函数将该项插入到传递给构造函数的父对象的模型中。如果模型已按顺序排序,则插入行为将无法确定,因为模型会调用该项的'<' 操作符方法,而此时该项尚未构建完成。为避免这种无法确定的行为,我们建议不要指定父对象,而是使用QListWidget::insertItem()。
另请参阅 type()。
[explicit] QListWidgetItem::QListWidgetItem(const QString &text, QListWidget *parent = nullptr, int type = Type)
根据指定的type ,并使用给定的text 和parent ,构建一个空的列表控件项。如果未指定父控件,则需要通过QListWidget::insertItem()将该项插入到列表控件中。
此构造函数将该项插入到传递给构造函数的父对象的模型中。如果模型已排序,则插入行为将无法确定,因为模型会调用该项的'<' 运算符方法,而此时该项尚未构建完成。为避免这种无法确定的行为,建议不要指定父对象,而改用QListWidget::insertItem()。
另请参阅 type()。
[explicit] QListWidgetItem::QListWidgetItem(const QIcon &icon, const QString &text, QListWidget *parent = nullptr, int type = Type)
根据指定的type ,使用给定的icon 、text 和parent 构建一个空的列表控件项。如果未指定父控件,则需要通过QListWidget::insertItem()将该项插入到列表控件中。
该构造函数将该项插入到传递给构造函数的父项的模型中。如果模型已排序,则插入行为将无法确定,因为模型会调用该项的'<' 运算符方法,而此时该项尚未构建完成。为避免这种无法确定的行为,我们建议不要指定父项,而是使用QListWidget::insertItem()。
另请参阅 type()。
QListWidgetItem::QListWidgetItem(const QListWidgetItem &other)
构建other 的副本。请注意,type()和listWidget()不会被复制。
在重写clone() 时,此函数非常有用。
[virtual noexcept] QListWidgetItem::~QListWidgetItem()
删除该列表项。
QBrush QListWidgetItem::background() const
返回用于显示列表项背景的画笔。
另请参阅 setBackground() 和foreground()。
Qt::CheckState QListWidgetItem::checkState() const
返回列表项的选中状态(参见Qt::CheckState )。
另请参阅 setCheckState() 和flags()。
[virtual] QListWidgetItem *QListWidgetItem::clone() const
创建该项目的精确副本。
[virtual] QVariant QListWidgetItem::data(int role) const
返回给定role 对应项的数据。若需要额外角色或针对特定角色实现特殊行为,请重写此函数。
另请参阅 Qt::ItemDataRole 和setData()。
Qt::ItemFlags QListWidgetItem::flags() const
返回该项目的标志(参见Qt::ItemFlags )。
另请参阅 setFlags()。
QFont QListWidgetItem::font() const
返回用于显示此列表项文本的字体。
另请参阅 setFont()。
QBrush QListWidgetItem::foreground() const
返回用于显示列表项的前景(例如文本)的画笔。
另请参阅 setForeground() 和background()。
QIcon QListWidgetItem::icon() const
返回列表项的图标。
bool QListWidgetItem::isHidden() const
如果该项被隐藏,则返回true ;否则返回false 。
另请参阅 setHidden()。
bool QListWidgetItem::isSelected() const
如果该项目被选中,则返回true ;否则返回false 。
另请参阅 setSelected()。
QListWidget *QListWidgetItem::listWidget() const
返回包含该项目的列表控件。
[virtual] void QListWidgetItem::read(QDataStream &in)
从流in 中读取项目。
另请参阅 write()。
void QListWidgetItem::setBackground(const QBrush &brush)
将列表项的背景画笔设置为给定的brush 。设置一个通过默认构造器构造的画笔将使视图使用样式中的默认颜色。
另请参阅 background() 和setForeground()。
void QListWidgetItem::setCheckState(Qt::CheckState state)
将列表项的选中状态设置为state 。
另请参阅 checkState()。
[virtual] void QListWidgetItem::setData(int role, const QVariant &value)
将指定role 的数据设置为给定的value 。如果需要为某些角色添加额外角色或实现特殊行为,请重写此函数。
注意: 默认实现将 Qt::EditRole 和Qt::DisplayRole 视为指向同一组数据。
另请参阅 Qt::ItemDataRole 和data()。
void QListWidgetItem::setFlags(Qt::ItemFlags flags)
将列表项的标记设置为flags 。
另请参阅 flags() 和Qt::ItemFlags 。
void QListWidgetItem::setFont(const QFont &font)
将绘制该项时使用的字体设置为指定的font 。
另请参阅 font()。
void QListWidgetItem::setForeground(const QBrush &brush)
将列表项的前景画笔设置为指定的brush 。设置一个通过默认构造函数构造的画笔,将使视图使用样式中的默认颜色。
另请参阅 foreground() 和setBackground()。
void QListWidgetItem::setHidden(bool hide)
如果 `hide ` 为真,则隐藏该项目;否则显示该项目。
另请参阅 isHidden()。
void QListWidgetItem::setIcon(const QIcon &icon)
将列表项的图标设置为给定的icon 。
另请参阅 icon()、text() 和iconSize 。
void QListWidgetItem::setSelected(bool select)
将该项的选中状态设置为select 。
另请参阅 isSelected()。
void QListWidgetItem::setSizeHint(const QSize &size)
将列表项的大小提示设置为size 。如果未设置大小提示,或者size 无效,则项委托将根据项数据计算大小提示。
另请参阅 sizeHint()。
void QListWidgetItem::setStatusTip(const QString &statusTip)
将列表项的状态提示设置为由statusTip 指定的文本。QListWidget 需启用 mouseTracking 功能,此功能才能正常工作。
另请参阅 statusTip()、setToolTip()、setWhatsThis() 以及QWidget::setMouseTracking()。
void QListWidgetItem::setText(const QString &text)
将列表控件项的文本设置为给定的text 。
另请参阅 text()。
[since 6.4] void QListWidgetItem::setTextAlignment(Qt::Alignment alignment)
将列表项的文本对齐方式设置为alignment 。
该函数于 Qt 6.4 中引入。
另请参阅 textAlignment()。
void QListWidgetItem::setToolTip(const QString &toolTip)
将列表项的工具提示设置为由toolTip 指定的文本。
另请参阅 toolTip()、setStatusTip() 和setWhatsThis()。
void QListWidgetItem::setWhatsThis(const QString &whatsThis)
将列表项的“这是什么?”帮助设置为whatsThis 中指定的文本。
另请参阅 whatsThis()、setStatusTip() 和setToolTip()。
QSize QListWidgetItem::sizeHint() const
返回为列表项设置的大小提示。
另请参阅 setSizeHint()。
QString QListWidgetItem::statusTip() const
返回列表项的状态提示。
另请参阅 setStatusTip()。
QString QListWidgetItem::text() const
返回列表项的文本。
另请参阅 setText()。
int QListWidgetItem::textAlignment() const
返回列表项的文本对齐方式。
注意: 出于历史原因,此函数 返回一个 int 类型。在 Qt 7 中,该行为将被修正为返回 `Qt::Alignment `。
另请参阅 setTextAlignment() 和Qt::Alignment 。
QString QListWidgetItem::toolTip() const
返回列表项的工具提示。
另请参阅 setToolTip()、statusTip() 和whatsThis()。
int QListWidgetItem::type() const
返回传递给QListWidgetItem 构造函数的类型。
QString QListWidgetItem::whatsThis() const
返回列表项的“这是什么?”帮助文本。
另请参阅 setWhatsThis()、statusTip()、以及toolTip()。
[virtual] void QListWidgetItem::write(QDataStream &out) const
将该项写入流out 。
另请参阅 read()。
[virtual] bool QListWidgetItem::operator<(const QListWidgetItem &other) const
如果该项的文本小于other 项的文本,则返回true ;否则返回false 。
QListWidgetItem &QListWidgetItem::operator=(const QListWidgetItem &other)
将other 的数据和标志赋值给此项。请注意,type()和listWidget()不会被复制。
在重写clone() 时,此函数非常有用。
相关的非成员
QDataStream &operator<<(QDataStream &out, const QListWidgetItem &item)
将列表控件项item 写入流out 。
该运算符使用QListWidgetItem::write()。
另请参阅 《Qt 数据类型的序列化》。
QDataStream &operator>>(QDataStream &in, QListWidgetItem &item)
从流in 中读取列表控件项,并将其读入item 中。
该运算符使用QListWidgetItem::read()。
另请参阅 《Qt 数据类型的序列化》。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.