class QStandardItem#

QStandardItem 类提供了与 QStandardItemModel 类一起使用的项。 更多...

概述#

方法#

虚方法#

注意

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

详细说明#

项目通常包含文本、图标或复选框。

每个项目都可以有自己的背景画笔,该画笔通过setBackground()函数设置。当前背景画笔可以通过background()找到。每个项的文本标签可以使用自己的字体和画笔进行渲染。这些通过setFont()setForeground()函数指定,并通过font()foreground()读取。

默认情况下,项目是启用、可编辑、可选、可勾选的,既可以作为拖放操作的源也可以作为目标。可以通过调用setFlags()来更改每个项目的标志。可勾选的项目可以使用setCheckState()函数勾选或取消勾选。相应的checkState()函数指示项目是否当前已勾选。

您可以通过调用setData()在项中存储特定于应用程序的数据。

每个项都可以有一个儿童项的二维表。这使得构建项层次结构成为可能。典型的层次结构是树,在这种情况下,子表是单列表(列表)。

子表的尺寸可以通过 setRowCount()setColumnCount() 来设置。可以使用 setChild() 将项目放置在子表中。使用 child() 获取子项的指针。还可以使用 insertRow()insertColumn() 插入新的子行和列,或者使用 appendRow()appendColumn() 追加。在使用追加和插入函数时,子表的尺寸将根据需要增长。

可以使用 removeRow()takeRow() 删除现有的子行;相应地,可以使用 removeColumn()takeColumn() 删除列。

可以通过调用 sortChildren() 对项目子项进行排序。

子类化

当通过子类化 QStandardItem 来提供自定义项时,可以定义新的类型以便与基类区分。应该重新实现 type() 函数以返回一个等于或大于 UserType 的新类型值。

如果想要对数据查询执行自定义处理以及/或控制项的数据表示方式,则重新实现 data()setData()

如果希望 clone() 能够让 QStandardItemModel 根据需要创建您的自定义项目类的实例(参见 setItemPrototype() )。

如果希望控制项目的序列化表示形式,请重新实现 read()write()

如果希望控制项目的比较语义,请重新实现 operator。这个操作符决定了使用 sortChildren()sort() 排列项目时的顺序。

参见

QStandardItemModel Item View Convenience ClassesModel/View Programming

class ItemType#

此枚举描述了用于描述标准项目的类型。

常量

描述

QStandardItem.Type

标准项目的默认类型。

QStandardItem.UserType

自定义类型的取值范围从 UserType 开始。Q setUserType 留给 Qt 进行使用。

您可以在 QStandardItem 子类中定义新的用户类型,以确保自定义项目被特殊处理;例如,当项目被排序时。

参见

type()

__init__(icon, text)#
参数:
  • iconQIcon

  • text – str

创建一个包含指定 icontext 的项目。

__init__()

创建一个项目。

__init__(rows[, columns=1])
参数:
  • rows – int

  • columns – int

创建一个具有 rows 行和 columns 列子项目的项目。

__init__(other)
参数:

otherQStandardItem

构建 other 的副本。注意,model() 不会被复制。

此函数在重新实现 clone() 时很有用。

__init__(text)
参数:

text – str

构建一个包含给定 text 的项。

accessibleDescription()#
返回类型:

str

返回项的可访问描述。

可访问描述由辅助技术(即无法使用传统交互方式的用户)使用。

accessibleText()#
返回类型:

str

返回项的可访问文本。

可访问文本由辅助技术(即无法使用传统交互方式的用户)使用。

appendColumn(items)#
参数:

items – .QStandardItem 的列表

追加包含 items 的列。如果需要,行计数将增加到 items 的大小。

appendRow(item)#
参数:

itemQStandardItem

此函数是重载的。

追加包含 item 的行。

当构建只有一个列的列表或树时,此函数提供了一种方便的方式追加一个新项。

appendRow(items)
参数:

items – .QStandardItem 的列表

追加包含 items 的行。如果需要,列计数将增加到 items 的大小。

参见

insertRow()

appendRows(items)#
参数:

items – .QStandardItem 的列表

追加包含 items 的行。列数不会改变。

参见

insertRow()

background()#
返回类型:

QBrush

返回用于绘制项目背景的画刷。

checkState()#
返回类型:

检查状态

返回项目的选中状态。

child(row[, column=0])#
参数:
  • – int

  • – int

返回类型:

QStandardItem

如果在 (, ) 处设置了一个子项,则返回该子项;否则返回 None

clearData()#

删除先前设置的各个角色数据的所有数据。

参见

data() setData()

clone()#
返回类型:

QStandardItem

返回此项的副本。该项的子项不会被复制。

当继承自 QStandardItem 时,您可以重写此函数以提供 QStandardItemModel 与工厂一起使用,以便在需要时创建新项。

参见

setItemPrototype() operator=()

()#
返回类型:

int

返回该项在其父项子项表中的列,如果项没有父项则返回 -1。

参见

row() parent()

columnCount()#
返回类型:

int

返回项目拥有的子项列数。

data([角色=Qt.UserRole + 1])#
参数:

角色 – int

返回类型:

对象

返回给定 角色 的项目数据,如果该角色没有数据则返回无效的 QVariant。

如果你重实现此函数,你的重实现应该为不处理的角色调用基本实现,否则获取标志,例如通过调用 flags()isCheckable()isEditable() 等,将不会正常工作。

注意

默认实现将 Qt::EditRole 和 Qt::DisplayRole 视为指向相同的数据。

参见

setData()

emitDataChanged()#

导致与此项目关联的模型为此项目发射一个 dataChanged() 信号。

通常只有在你继承了 QStandardItem 并重写了 data() 和/或 setData() 时,才需要调用此函数。

参见

setData()

flags()#
返回类型:

ItemFlag 的组合

返回项目的标志。

项目标志确定用户可以如何与项目交互。

默认情况下,项目被启用、可编辑、可选、可勾选,并且可以用作拖放操作的数据源和目标。

参见

setFlags()

font()#
返回类型:

QFont

返回用于渲染项目文本的字体。

参见

setFont()

foreground()#
返回类型:

QBrush

返回用于渲染项目前景(例如文本)的画刷。

参见

请参阅 setForeground()background()

hasChildren()
返回类型:

bool

返回值为 true 表示此项有子项;否则返回 false

参见

rowCount()columnCount() 以及 child()

icon()
返回类型:

QIcon

返回该项的图标。

参见

setIcon()iconSize

index()
返回类型:

QModelIndex

返回与此项关联的 QModelIndex。

当需要在基于 QModelIndex 的 API 中调用项的功能时(例如 QAbstractItemView),您可以调用此函数以获取对应于项在模型中的位置的索引。

如果该项未关联到模型,则返回一个无效的 QModelIndex。

insertColumn(column, items)
参数:
  • – int

  • items – .QStandardItem 的列表

column 处插入包含 items 的列。如果需要,将行数增加到 items 的大小。

insertColumns(column, count)
参数:
  • – int

  • count – int

在列 column 处插入 count 列的子项。

insertRow(row, item)#
参数:

此函数是重载的。

在指定位置 row 插入包含 item 的一行。

当构建只有一个列的列表或树时,此函数提供了一个方便的方式插入单个新项。

insertRow(row, items)
参数:
  • – int

  • items – .QStandardItem 的列表

在指定位置 row 插入包含 items 的一行。如果需要,列数将增加到与 items 大小一致。

insertRows(row, items)#
参数:
  • – int

  • items – .QStandardItem 的列表

在指定位置 row 插入 items。列数不会改变。

insertRows(row, count)
参数:
  • – int

  • count – int

在指定位置 row 插入 count 行子项。

isAutoTristate()#
返回类型:

bool

返回该项是否为三态且由 QTreeWidget 控制。

默认值为 false。

isCheckable()#
返回类型:

bool

返回该项是否可用用户勾选。

默认值为 false。

isDragEnabled()#
返回类型:

bool

返回项目是否支持拖动。支持拖动的项目可以被用户拖动。

默认值是 true。

请注意,项目拖动必须在视图中启用才能启用拖动;请参阅 QAbstractItemView::dragEnabled。

isDropEnabled()#
返回类型:

bool

返回项目是否支持drops。当项目支持drops时,它可以作为一个drops目标。

默认值是 true。

isEditable()#
返回类型:

bool

返回项目是否可以被用户编辑。

当一个项目可编辑(并且启用)时,用户可以通过调用视图中的一种编辑触发器来编辑项目;请参阅 QAbstractItemView::editTriggers。

默认值是 true。

isEnabled()#
返回类型:

bool

返回项目是否启用。

当项目被启用时,用户可以与之交互。可能的交互类型由其他项目标志规定,例如 isEditable()isSelectable()

默认值是 true。

isSelectable()#
返回类型:

bool

返回项目是否可由用户选择。

默认值是 true。

isUserTristate()#
返回类型:

bool

返回该项目是否为三态;也就是说,如果它可以具有三个单独的状态,并且用户可以遍历这三个状态。

默认值为 false。

model()#
返回类型:

QStandardItemModel

返回该项目所属的 QStandardItemModel

如果该项目不是属于该模型的另一个项目的子项,则此函数返回 None

参见

index()

__lt__(other)#
参数:

otherQStandardItem

返回类型:

bool

如果此项目小于 other,则返回 true;否则返回 false

默认实现如果项目属于一个模型,则使用项目的排序角色(请参阅 sortRole)来进行比较;否则,使用项目的 Qt::DisplayRole( text())来进行比较。

sortChildren()sort() 在排序项目时使用此函数。如果您需要进行定制排序,您可以将 QStandardItem 进行子类化并重写此函数。

parent()#
返回类型:

QStandardItem

返回项目的父项目,如果没有父项目,则返回 None

注意

对于顶级项,返回 None。要接收顶级项的父项,请使用 invisibleRootItem() 而不是 parent()

read(in)#
参数:

inQDataStream

从流 in 中读取项目。只读取项目的数据和标志,不读取子项目。

参见

write()

removeColumn(column)#
参数:

– int

移除指定的 column。该列中的项目将被删除。

removeColumns(column, count)#
参数:
  • – int

  • count – int

在列 column 处移除 count 列。那些列中的项目将被删除。

removeRow(row)#
参数:

– int

移除指定的 row。该行中的项目将被删除。

removeRows(row, count)#
参数:
  • – int

  • count – int

在行 row 处移除 count 行。那些行中的项目将被删除。

row()#
返回类型:

int

返回该项位于父项的子表中的行,如果没有父项则返回-1。

rowCount()#
返回类型:

int

返回该项拥有的子项目行数。

setAccessibleDescription(accessibleDescription)#
参数:

accessibleDescription – str

将项的可访问描述设置为accessibleDescription指定的字符串。

可访问描述由辅助技术(即无法使用传统交互方式的用户)使用。

setAccessibleText(accessibleText)#
参数:

accessibleText – str

将项的可访问文本设置为accessibleText指定的字符串。

可访问文本由辅助技术(即无法使用传统交互方式的用户)使用。

setAutoTristate(tristate)#
参数:

tristate – bool

如果《tristate》为《true》,则确定项为三态,并且由《QTreeWidget》控制。这启用了对QTreeWidget中父项状态的自动管理(如果所有子项都被选中,则选中;如果所有子项都被取消选中,则取消选中;如果只有部分子项被选中,则部分选中)。

setBackground(brush)#
参数:

brushQBrush

设置项目的背景笔刷为指定的 brush

setCheckState(checkState)#
参数:

checkStateCheckState

将项目的勾选状态设置为 state

setCheckable(checkable)#
参数:

checkable – bool

设置项目是否可由用户勾选。如果 checkable 为 true,则用户可以勾选该项目;否则用户不能勾选该项目。

项目代理将使用旁边的复选框渲染可勾选项目。

setChild(row, column, item)#
参数:

将 (row, column) 位置的子项设置为 item。此项目(父项目)将拥有 item。如果需要,行数和列数将增加以适应该项。

注意

None 作为 item 传递时将移除该项。

参见

child()

setChild(row, item)
参数:

此函数是重载的。

row 位置的子项设置为 item

setColumnCount(columns)#
参数:

columns – int

设置子项目列的数量为columns。如果这个值小于columnCount(),则不想要的列中的数据将被丢弃。

参见

columnCount() setRowCount()

setData(value[, role=Qt.UserRole + 1])#
参数:
  • value – 对象

  • 角色 – int

将项目的数据设置为给定role的指定value

如果你是QStandardItem的子类,并重新实现此函数,你的实现应该

  • 如果不调用setData()的基本实现,请调用emitDataChanged()。这将确保使用该模型的视图能够通知到更改

  • 处理所有不角色调用基本实现,否则设置标志(例如通过调用setFlags()setCheckable()setEditable()等),将不会工作。

注意

默认实现将 Qt::EditRole 和 Qt::DisplayRole 视为指向相同的数据。

参见

data() setFlags()

setDragEnabled(dragEnabled)#
参数:

dragEnabled – 布尔值

设置项目是否启用拖动。如果dragEnabled为true,则用户可以拖动项目;否则,用户不能拖动该项目。

注意,还需要确保在视图中启用项目拖动;请参阅QAbstractItemView::dragEnabled

setDropEnabled(dropEnabled)#
参数:

dropEnabled – 布尔型

设置项目是否启用拖放。如果 dropEnabled 为 true,则该项可以用作拖放目标;否则不可以。

请注意,您还需要确保在视图中启用了拖放;请参阅 QWidget::acceptDrops();以及模型支持所需的拖放操作;请参阅 QAbstractItemModel::supportedDropActions()。

setEditable(editable)#
参数:

editable – 布尔型

设置项目是否可编辑。如果 editable 为 true,则用户可以编辑该项;否则,用户不能编辑该项。

用户如何在视图中编辑项目由视图的编辑触发器决定;请参阅 QAbstractItemView::editTriggers。

setEnabled(enabled)#
参数:

enabled – 布尔型

设置项目是否启用。如果 enabled 为 true,则项目是启用的,这意味着用户可以与之交互;如果 enabled 为 false,则用户不能与之交互。

此标志优于其他项目标志;例如,如果项目未启用,即使已设置 Qt::ItemIsSelectable 标志,用户也无法选择它。

setFlags(flags)#
参数:

flagsItemFlag 的组合

将项目的标志项设置为 flags

项目标志决定了用户如何与项目互动。这通常用于禁用项目。

setFont(font)#
参数:

fontQFont

将用于显示项目文本的字体设置为给定的 font

setForeground(brush)#
参数:

brushQBrush

将用于显示项目前景(例如文本)的画笔设置为给定的 brush

setIcon(icon)#
参数:

iconQIcon

将项目的图标设置为指定的 icon

参见

icon()

setRowCount(rows)#
参数:

rows – int

将子项目行数设置为 rows。如果这个值小于 rowCount(),则丢弃不想要的行中的数据。

setSelectable(selectable)#
参数:

selectable – bool

设置项目是否可选择。如果 selectable 为 true,用户可以选择该项目;否则,用户不能选择该项目。

您可以通过操作它们的视图属性来控制选择行为和模式;请参阅 QAbstractItemView::selectionMode 和 QAbstractItemView::selectionBehavior。

setSizeHint(sizeHint)#
参数:

sizeHintQSize

设置项的大小提示为 size。如果未设置大小提示,则项代理将基于项数据计算大小提示。

参见

sizeHint()

setStatusTip(statusTip)#
参数:

statusTip – 字符串

将项的状态提示设置为由 statusTip 指定的字符串。

setText(text)#
参数:

text – str

将项的文本设置为指定的 text

setTextAlignment(textAlignment)#
参数:

textAlignmentAlignmentFlag 的组合

将项文本的对齐设置为指定的 alignment

setToolTip(toolTip)#
参数:

toolTip – 字符串

将项的工具提示设置为由 toolTip 指定的字符串。

setUserTristate(tristate)#
参数:

tristate – bool

设置条目是否处于三态,并受用户控制。如果 tristate 为 true,用户可以循环访问三个独立的状态;否则,该条目将以两个状态可选中。注:这也要求该条目可选中;请参阅 isCheckable()

setWhatsThis(whatsThis)#
参数:

whatsThis – str

将条目的“这是什么?”帮助设置为通过 whatsThis 指定的字符串。

sizeHint()#
返回类型:

QSize

返回为条目设置的尺寸提示,如果没有设置尺寸提示,则返回一个无效的 QSize

如果没有设置尺寸提示,-item dele gate 将根据条目数据计算尺寸提示。

参见

setSizeHint()

sortChildren(column[, order=Qt.AscendingOrder])#
参数:

使用指定的 ordercolumn 中的值对条目的子项进行排序。

注意

此函数是递归的,因此它对条目的子项、孙子项等进行排序。

参见

operator

statusTip()#
返回类型:

str

返回条目的状态提示。

takeChild(row[, column=0])#
参数:
  • – int

  • – int

返回类型:

QStandardItem

在不删除的情况下从指定位置(row, column)移除子项,并返回对该项的指针。如果指定位置没有子项,则此函数返回None

请注意,此函数与takeRow()takeColumn()不同,它不影响子表的尺寸。

takeColumn(column)#
参数:

– int

返回类型:

返回一个QStandardItem列表

在不删除列项的情况下删除指定的列,并返回被移除项的指针列表。对于未设置列中的项,列表中对应的指针将是None

takeRow(row)#
参数:

– int

返回类型:

返回一个QStandardItem列表

在不删除行项的情况下删除指定的行,并返回被移除项的指针列表。对于未设置行中的项,列表中对应的指针将是None

text()#
返回类型:

str

返回项的文本文本。这是在视图中向用户显示的文本。

参见

setText()

textAlignment()#
返回类型:

组合 AlignmentFlag

返回项目文本的对齐方式。

toolTip()#
返回类型:

str

返回项目的工具提示。

type()#
返回类型:

int

返回此项目的类型。类型用于区分自定义项和基本类。在继承 QStandardItem 时,您应重写此函数并返回一个大于或等于 UserType 的新值。

参见

类型

whatsThis()#
返回类型:

str

返回项目的“这是什么?”帮助信息。

write(out)#
参数:

outQDataStream

将项目写入流 out。仅写入项的数据和标志,不包括子项。

参见

read()