QListWidgetItem Class

QListWidgetItem 类为QListWidget item 视图类提供了一个项目。更多

Header: #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 进行子类化以提供自定义项目时,可以为它们定义新的类型,以便将它们与标准项目区分开来。对于需要此功能的子类,请确保在调用基类构造函数时,在构造函数中使用等于或大于UserType,新类型值。

另请参阅 QListWidget,模型/视图编程,QTreeWidgetItem, 和QTableWidgetItem

成员类型文档

enum QListWidgetItem::ItemType

该枚举描述了用于描述列表 widget 项目的类型。

常量描述
QListWidgetItem::Type0列表 widget 项目的默认类型。
QListWidgetItem::UserType1000自定义类型的最小值。低于 UserType 的值由 Qt 保留。

您可以在QListWidgetItem 子类中定义新的用户类型,以确保对自定义项目进行特殊处理。

另请参阅 type().

成员函数文档

[explicit] QListWidgetItem::QListWidgetItem(QListWidget *parent = nullptr, int type = Type)

用给定的parent 构建一个指定type 的空 list widget 项目。如果未指定parent ,则需要使用QListWidget::insertItem() 将项目插入到列表 widget 中。

此构造函数将项目插入传递给构造函数的父节点模型中。如果模型是排序的,那么插入的行为将是不确定的,因为模型将调用'<' 运算符方法来处理项目,而此时项目尚未构建。为了避免出现不确定的行为,我们建议不要指定父代,而使用QListWidget::insertItem() 。

另请参见 type()。

[explicit] QListWidgetItem::QListWidgetItem(const QString &text, QListWidget *parent = nullptr, int type = Type)

使用给定的textparent 构建一个指定type 的空 list widget 项目。如果未指定父对象,则需要使用QListWidget::insertItem() 将项目插入到一个 list widget 中。

该构造函数会将项目插入传递给构造函数的父节点模型中。如果模型是排序的,那么插入的行为将是不确定的,因为模型将调用'<' 运算符方法来处理项目,而此时项目尚未构建。为了避免出现不确定的行为,我们建议不要指定父代,而使用QListWidget::insertItem() 。

另请参见 type()。

[explicit] QListWidgetItem::QListWidgetItem(const QIcon &icon, const QString &text, QListWidget *parent = nullptr, int type = Type)

使用给定的icontextparent 构建一个指定type 的空 list widget 项目。如果未指定父对象,则需要使用QListWidget::insertItem() 将该项目插入到一个 list widget 中。

该构造函数会将项目插入传递给构造函数的父节点模型中。如果模型是排序的,那么插入的行为将是不确定的,因为模型将调用'<' 运算符方法来处理项目,而此时项目尚未构建。为了避免出现不确定的行为,我们建议不要指定父代,而使用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::ItemDataRolesetData()。

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

返回包含项目的列表 widget。

[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::EditRoleQt::DisplayRole 视为相同的数据。

另请参阅 Qt::ItemDataRoledata()。

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 为 true,则隐藏项目;否则显示项目。

另请参阅 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)

将列表 widget 项的文本设置为给定的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 XML 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)

将列表 widget 项item 写入流out

该操作符使用QListWidgetItem::write() 。

另请参阅 序列化 Qt 数据类型

QDataStream &operator>>(QDataStream &in, QListWidgetItem &item)

将列表 widget 项从in 流读入item

该操作符使用QListWidgetItem::read() 。

另请参阅 序列化 Qt 数据类型

© 2025 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.