PySide6.QtWidgets.QListWidget

class QListWidget

QListWidget 类提供了一个基于项目的列表小部件。更多

PySide6.QtWidgets.QListWidget 的继承图

概要

属性

方法

虚拟方法

插槽

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

../../_images/fusion-listview.png

QListWidget 是一个便利类,它提供了一个类似于 QListView 提供的列表视图,但具有用于添加和删除项目的经典基于项目的界面。QListWidget 使用内部模型来管理列表中的每个 QListWidgetItem

为了获得更灵活的列表视图小部件,请使用带有标准模型的QListView类。

列表小部件的构建方式与其他小部件相同:

listWidget = QListWidget(self)

列表小部件的selectionMode()决定了列表中可以同时选择多少项,以及是否可以创建复杂的项选择。这可以通过setSelectionMode()函数来设置。

有两种方法可以将项目添加到列表中:它们可以作为列表小部件的父小部件构造,或者可以在没有父小部件的情况下构造,并在以后添加到列表中。如果在构造项目时已经存在列表小部件,则第一种方法更容易使用:

QListWidgetItem(tr("Oak"), listWidget)
QListWidgetItem(tr("Fir"), listWidget)
QListWidgetItem(tr("Pine"), listWidget)

如果您需要在列表的特定位置插入一个新项目,那么它应该在没有任何父部件的情况下构建。然后应使用insertItem()函数将其放置在列表中。列表部件将拥有该项目的所有权。

newItem = QListWidgetItem()
newItem.setText(itemText)
listWidget.insertItem(row, newItem)

对于多个项目,可以使用insertItems()代替。列表中的项目数量可以通过count()函数找到。要从列表中移除项目,请使用takeItem()

列表中的当前项可以通过currentItem()找到,并通过setCurrentItem()进行更改。用户还可以通过键盘导航或点击不同的项来更改当前项。当当前项发生变化时,会发出currentItemChanged()信号,并带有新的当前项和之前当前项的信息。

另请参阅

QListWidgetItem QListView QTreeView 模型/视图编程 标签对话框示例

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property countᅟ: int

此属性保存列表中项目的数量,包括任何隐藏的项目。

Access functions:
property currentRowᅟ: int

此属性保存当前项目的行。

根据当前的选择模式,该行也可能被选中。

Access functions:
property sortingEnabledᅟ: bool

此属性表示是否启用了排序。

如果此属性为true,则启用列表排序;如果属性为false,则不启用排序。

默认值为 false。

Access functions:
__init__([parent=None])
Parameters:

父级QWidget

使用给定的parent构造一个空的QListWidget

addItem(item)
Parameters:

项目QListWidgetItem

item 插入到列表小部件的末尾。

警告

一个QListWidgetItem只能被添加到一个QListWidget一次。多次将同一个QListWidgetItem添加到QListWidget将导致未定义的行为。

另请参阅

insertItem()

addItem(label)
Parameters:

标签 – str

在列表小部件的末尾插入一个带有文本 label 的项目。

addItems(labels)
Parameters:

labels – 字符串列表

在列表小部件的末尾插入带有文本 labels 的项目。

另请参阅

insertItems()

clear()

移除视图中的所有项目和选择。

警告

所有项目将被永久删除。

closePersistentEditor(item)
Parameters:

项目QListWidgetItem

关闭给定item的持久编辑器。

count()
Return type:

整数

属性 countᅟ 的获取器。

currentItem()
Return type:

QListWidgetItem

返回当前项目。

另请参阅

setCurrentItem()

currentItemChanged(current, previous)
Parameters:

每当当前项目发生变化时,都会发出此信号。

previous 是之前获得焦点的项目;current 是新的当前项目。

currentRow()
Return type:

整数

另请参阅

setCurrentRow()

属性 currentRowᅟ 的获取器。

currentRowChanged(currentRow)
Parameters:

currentRow – int

每当当前项目发生变化时,都会发出此信号。

currentRow 是当前项目的行。如果没有当前项目,currentRow 为 -1。

属性 currentRowᅟ 的通知信号。

currentTextChanged(currentText)
Parameters:

currentText – str

每当当前项目发生变化时,都会发出此信号。

currentText 是当前项目中的文本数据。如果没有当前项目,currentText 是无效的。

dropMimeData(index, data, action)
Parameters:
Return type:

布尔

处理由外部拖放操作提供的data,该操作以给定的action在给定的index结束。如果模型可以处理dataaction,则返回true;否则返回false

另请参阅

supportedDropActions()

editItem(item)
Parameters:

项目QListWidgetItem

如果item是可编辑的,则开始编辑。

findItems(text, flags)
Parameters:
  • 文本 – str

  • flagsMatchFlag 的组合

Return type:

.WidgetItem 的列表的列表

使用给定的flags查找与字符串text匹配的文本项。

indexFromItem(item)
Parameters:

项目QListWidgetItem

Return type:

QModelIndex

返回与给定item关联的QModelIndex。

注意

在Qt 5.10之前的版本中,此函数接受一个非constitem

insertItem(row, item)
Parameters:

在由row给出的列表位置插入item

另请参阅

addItem()

insertItem(row, label)
Parameters:
  • row – int

  • label – str

在列表小部件中插入一个带有文本label的项目,位置由row给出。

另请参阅

addItem()

insertItems(row, labels)
Parameters:
  • row – int

  • labels – 字符串列表

labels列表中的项目插入到列表中,从给定的row开始。

另请参阅

insertItem() addItem()

isPersistentEditorOpen(item)
Parameters:

项目QListWidgetItem

Return type:

布尔

返回是否为项目 item 打开了持久编辑器。

isSortingEnabled()
Return type:

布尔

属性 sortingEnabledᅟ 的获取器。

item(row)
Parameters:

– 整数

Return type:

QListWidgetItem

返回列表中占据给定row的项目,如果已设置;否则返回None

另请参阅

row()

itemActivated(item)
Parameters:

项目QListWidgetItem

item被激活时,会发出此信号。当用户单击或双击item时,它会根据系统配置被激活。当用户按下激活键时(在Windows和X11上是Return键,在Mac OS X上是Command+O),它也会被激活。

itemAt(p)
Parameters:

pQPoint

Return type:

QListWidgetItem

返回指向坐标 p 处项目的指针。坐标相对于列表小部件的 viewport()

itemAt(x, y)
Parameters:
  • x – 整数

  • y – 整数

Return type:

QListWidgetItem

这是一个重载函数。

返回指向坐标(x, y)处项目的指针。坐标相对于列表小部件的viewport()

itemChanged(item)
Parameters:

项目QListWidgetItem

每当item的数据发生变化时,都会发出此信号。

itemClicked(item)
Parameters:

项目QListWidgetItem

当在小部件中的项目上点击鼠标按钮时,会发出此信号,并带有指定的item

itemDoubleClicked(item)
Parameters:

项目QListWidgetItem

当在小部件中的项目上双击鼠标按钮时,会发出此信号,并带有指定的item

itemEntered(item)
Parameters:

项目QListWidgetItem

当鼠标光标进入一个项目时,会发出此信号。item 是进入的项目。此信号仅在启用鼠标跟踪或在移动进入项目时按下鼠标按钮时发出。

另请参阅

setMouseTracking()

itemFromIndex(index)
Parameters:

索引QModelIndex

Return type:

QListWidgetItem

返回与给定index关联的QListWidgetItem的指针。

itemPressed(item)
Parameters:

项目QListWidgetItem

当在小部件中的项目上按下鼠标按钮时,会发出此信号,并带有指定的item

itemSelectionChanged()

每当选择发生变化时,都会发出此信号。

itemWidget(item)
Parameters:

项目QListWidgetItem

Return type:

QWidget

返回显示在给定item中的小部件。

items(data)
Parameters:

数据QMimeData

Return type:

.WidgetItem 的列表的列表

返回指向data对象中包含的项目的指针列表。如果该对象不是由同一进程中的QListWidget创建的,则列表为空。

mimeData(items)
Parameters:

items – .WidgetItem 的列表的列表

Return type:

QMimeData

返回一个包含指定items序列化描述的对象。用于描述项目的格式是从mimeTypes()函数中获取的。

如果项目列表为空,则返回None而不是序列化的空列表。

mimeTypes()
Return type:

字符串列表

返回可用于描述列表小部件项列表的MIME类型列表。

另请参阅

mimeData()

openPersistentEditor(item)
Parameters:

项目QListWidgetItem

为给定的item打开一个编辑器。编辑完成后,编辑器保持打开状态。

removeItemWidget(item)
Parameters:

项目QListWidgetItem

移除给定item上设置的小部件。

要从列表中完全删除一个项目(行),可以删除该项目或使用takeItem()

row(item)
Parameters:

项目QListWidgetItem

Return type:

整数

返回包含给定item的行。

另请参阅

item()

scrollToItem(item[, hint=QAbstractItemView.ScrollHint.EnsureVisible])
Parameters:

如有必要,滚动视图以确保item可见。

hint 指定操作后 item 应该位于的位置。

selectedItems()
Return type:

.WidgetItem 的列表的列表

返回列表小部件中所有选定项目的列表。

setCurrentItem(item)
Parameters:

项目QListWidgetItem

将当前项目设置为 item

除非选择模式是NoSelection,否则该项目也会被选中。

另请参阅

currentItem()

setCurrentItem(item, command)
Parameters:

将当前项目设置为item,使用给定的command

setCurrentRow(row)
Parameters:

– 整数

属性 currentRowᅟ 的设置器。

setCurrentRow(row, command)
Parameters:

将当前行设置为给定的 row,使用给定的 command

另请参阅

currentRow()

setItemWidget(item, widget)
Parameters:

设置要在给定的item中显示的widget

此函数应仅用于在列表小部件项的位置显示静态内容。如果您想显示自定义动态内容或实现自定义编辑器小部件,请使用QListView并子类化QStyledItemDelegate

注意

列表获取了widget的所有权。

setSortingEnabled(enable)
Parameters:

enable – 布尔值

另请参阅

isSortingEnabled()

属性 sortingEnabledᅟ 的设置器。

sortItems([order=Qt.AscendingOrder])
Parameters:

顺序SortOrder

根据指定的order对列表小部件中的所有项目进行排序。

supportedDropActions()
Return type:

DropAction的组合

返回此视图支持的拖放操作。

另请参阅

DropActions

takeItem(row)
Parameters:

– 整数

Return type:

QListWidgetItem

从列表小部件中的给定row移除并返回项目;否则返回None

从列表小部件中移除的项目将不再由Qt管理,需要手动删除。

另请参阅

insertItem() addItem()

visualItemRect(item)
Parameters:

项目QListWidgetItem

Return type:

QRect

返回视口中由item处的项目占据的矩形。