本页内容

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::Type0列表控件项的默认类型。
QListWidgetItem::UserType1000自定义类型的最小值。小于 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() 时,此函数非常有用。

另请参阅 data() 和flags()。

[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

返回列表项的图标。

另请参阅 setIcon() 和iconSize 。

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() 时,此函数非常有用。

另请参阅 data() 和flags()。

相关的非成员

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.