class QListWidget#

QListWidget 类提供了基于项目的列表控件。 更多

Inheritance diagram of PySide6.QtWidgets.QListWidget

概述#

属性#

方法#

虚方法#

#

信号#

注意

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

详细描述#

警告

本节包含自动从C++转换为Python的代码片段,可能包含错误。

../../_images/windows-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#

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

访问函数
property currentRow: int#

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

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

访问函数
property sortingEnabled: bool#

此属性存储是否启用了排序。

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

默认值为 false

访问函数
__init__([parent=None])#
参数: :

parentQWidget

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

addItem(item)#
参数: :

itemQListWidgetItem

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

警告

QListWidgetItem对象只能添加到一个QListWidget对象中。将相同的QListWidgetItem对象多次添加到QListWidget对象中,会导致未定义的行为。

另请参阅

insertItem()

addItem(label)
参数: :

label – 字符串

在列表控件末尾插入带文本label的项。

addItems(labels)#
参数: :

labels – 字符串列表

在列表控件末尾插入带文本labels的项。

另请参阅

insertItems()

clear()#

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

警告

所有项都将被永久删除。

closePersistentEditor(item)#
参数: :

itemQListWidgetItem

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

count()#
返回类型:

int

属性count的获取器。

currentItem()#
返回类型:

QListWidgetItem

返回当前项。

另请参阅

setCurrentItem()

currentItemChanged(current, previous)#
参数: :

每当当前项更改时,都会发出此信号。

previous是之前具有聚焦的项;current是新的当前项。

currentRow()#
返回类型:

int

另请参阅

setCurrentRow()

属性 currentRowᅟ 的获取方法。

currentRowChanged(currentRow)#
参数: :

currentRow – int

每当当前项更改时,都会发出此信号。

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

属性 currentRowᅟ 的通知信号。

currentTextChanged(currentText)#
参数: :

currentText – str

每当当前项更改时,都会发出此信号。

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

dropMimeData(index, data, action)#
参数: :
返回类型:

bool

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

editItem(item)#
参数: :

itemQListWidgetItem

如果可以编辑,开始编辑 item

findItems(text, flags)#
参数: :
返回类型:

. WidgetItem 的列表

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

indexFromItem(item)#
参数: :

itemQListWidgetItem

返回类型:

QModelIndex

返回与给定 item 相关的 QModelIndex。

注意

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

insertItem(row, item)#
参数: :

在列表中按照 row 位置插入 item

另请参阅

addItem()

insertItem(row, label)
参数: :
  • row – int

  • label – 字符串

在列表小部件中按 row 位置插入具有文本 label 的项。

另请参阅

addItem()

insertItems(row, labels)#
参数: :
  • row – int

  • labels – 字符串列表

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

另请参阅

insertItem() addItem()

isPersistentEditorOpen(item)#
参数: :

itemQListWidgetItem

返回类型:

bool

返回是否为 item 打开国久编辑器。

isSortingEnabled()#
返回类型:

bool

属性 sortingEnabled 的获取器。

item(row)#
参数: :

row – int

返回类型:

QListWidgetItem

如果设置了给定 row 在列表中的项,则返回该项;否则返回 None

另请参阅

row()

itemActivated(item)#
参数: :

itemQListWidgetItem

此信号在 item 激活时发出。当用户点击或双击 item 时会激活 item,具体取决于系统配置。当用户按下激活键(在 Windows 和 X11 中是回车键,在 Mac OS X 中是 Command+O)时,它也会被激活。

itemAt(p)#
参数: :

pQPoint

返回类型:

QListWidgetItem

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

itemAt(x, y)
参数: :
  • x – int

  • y – int

返回类型:

QListWidgetItem

这是一个重载函数。

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

itemChanged(item)#
参数: :

itemQListWidgetItem

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

itemClicked(item)#
参数: :

itemQListWidgetItem

当在控件中的项目上单击鼠标按钮时,会发出具有指定 item 的此信号。

itemDoubleClicked(item)#
参数: :

itemQListWidgetItem

当在控件中的项目上双击鼠标按钮时,会发出具有指定 item 的此信号。

itemEntered(item)#
参数: :

itemQListWidgetItem

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

另请参阅

setMouseTracking()

itemFromIndex(index)#
参数: :

indexQModelIndex

返回类型:

QListWidgetItem

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

itemPressed(item)#
参数: :

itemQListWidgetItem

当在部件中的一个项目上按下鼠标按钮时,将与指定item一起发出此信号。

itemSelectionChanged()#

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

itemWidget(item)#
参数: :

itemQListWidgetItem

返回类型:

QWidget

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

items(data)#
参数: :

dataQMimeData

返回类型:

. WidgetItem 的列表

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

mimeData(items)#
参数: :

items – WidgetItem列表的列表

返回类型:

QMimeData

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

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

mimeTypes()#
返回类型:

字符串列表

返回可以用来描述一系列 listwidget 项的 MIME 类型列表。

另请参阅

mimeData()

openPersistentEditor(item)#
参数: :

itemQListWidgetItem

打开给定 item 的编辑器。编辑后会保持打开状态。

removeItemWidget(item)#
参数: :

itemQListWidgetItem

移除给定 item 上设置的 widget。

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

row(item)#
参数: :

itemQListWidgetItem

返回类型:

int

返回包含给定 item 的行。

另请参阅

item()

scrollToItem(item[, hint=QAbstractItemView.ScrollHint.EnsureVisible])#
参数: :

在需要时,滚动视图以确保 item 可见。

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

selectedItems()#
返回类型:

. WidgetItem 的列表

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

setCurrentItem(item)#
参数: :

itemQListWidgetItem

设置当前项为 item

除非选择模式为 NoSelection ,否则项目也将被选中。

另请参阅

currentItem()

setCurrentItem(item, command)
参数: :

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

setCurrentRow(row)#
参数: :

row – int

另请参阅

currentRow()

是属性 currentRowᅟ 的设置器。

setCurrentRow(row, command)
参数: :

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

setItemWidget(item, widget)#
参数: :

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

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

setSortingEnabled(enable)#
参数: :

enable – bool

另请参阅

isSortingEnabled()

是属性 sortingEnabledᅟ 的设置器。

sortItems([order=Qt.AscendingOrder])#
参数: :

order<span class="pre">SortOrder</span></code>

根据指定的 <span class="pre">order</span></code> 对列表小部件中的所有项目进行排序。

supportedDropActions(</span>)#</a>
返回类型:

<span class="pre">DropAction</span></code> 的组合

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

另请参阅

拖放操作

takeItem(</span><span class="n">row</span></span></em></span}</code></a>
参数: :

row – int

返回类型:

QListWidgetItem

从列表小部件的指定 <span class="pre">row</span></code> 中删除并返回项目;否则返回 <span class="pre">None</span></code>。

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

另请参阅

insertItem() addItem()

visualItemRect(</span><span class="n">item</span></span></em></span></code></a>
参数: :

itemQListWidgetItem

返回类型:

QRect

返回位于 <span class="pre">item</span></code> 的视图中占用的矩形。