- class QStandardItem#
QStandardItem
类提供了与QStandardItemModel
类一起使用的项。 更多...概述#
方法#
def
__init__()
def
accessibleText()
def
appendColumn()
def
appendRow()
def
appendRows()
def
background()
def
checkState()
def
child()
def
clearData()
def
column()
def
columnCount()
定义
flags()
定义
font()
定义
foreground()
定义
icon()
定义
index()
定义
insertRow()
定义
insertRows()
定义
isEditable()
定义
isEnabled()
定义
model()
定义
parent()
定义
removeRow()
定义
removeRows()
定义
row()
定义
rowCount()
定义
setChild()
定义
setEnabled()
定义
setFlags()
定义
setFont()
定义
setIcon()
定义
setText()
定义
setToolTip()
定义
sizeHint()
定义
statusTip()
定义
takeChild()
定义
takeColumn()
定义
takeRow()
定义
text()
定义
toolTip()
定义
whatsThis()
虚方法#
注意
本文档可能包含从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
子类中定义新的用户类型,以确保自定义项目被特殊处理;例如,当项目被排序时。参见
创建一个包含指定
icon
和text
的项目。- __init__()
创建一个项目。
- __init__(rows[, columns=1])
- 参数:
rows – int
columns – int
创建一个具有
rows
行和columns
列子项目的项目。- __init__(other)
- 参数:
other –
QStandardItem
构建
other
的副本。注意,model()
不会被复制。此函数在重新实现
clone()
时很有用。- __init__(text)
- 参数:
text – str
构建一个包含给定
text
的项。- accessibleDescription()#
- 返回类型:
str
返回项的可访问描述。
可访问描述由辅助技术(即无法使用传统交互方式的用户)使用。
- accessibleText()#
- 返回类型:
str
返回项的可访问文本。
可访问文本由辅助技术(即无法使用传统交互方式的用户)使用。
- appendColumn(items)#
- 参数:
items – .QStandardItem 的列表
追加包含
items
的列。如果需要,行计数将增加到items
的大小。- appendRow(item)#
- 参数:
item –
QStandardItem
此函数是重载的。
追加包含
item
的行。当构建只有一个列的列表或树时,此函数提供了一种方便的方式追加一个新项。
- appendRow(items)
- 参数:
items – .QStandardItem 的列表
追加包含
items
的行。如果需要,列计数将增加到items
的大小。参见
- appendRows(items)#
- 参数:
items – .QStandardItem 的列表
追加包含
items
的行。列数不会改变。参见
返回用于绘制项目背景的画刷。
返回项目的选中状态。
- child(row[, column=0])#
- 参数:
行 – int
列 – int
- 返回类型:
如果在 (
行
,列
) 处设置了一个子项,则返回该子项;否则返回None
。- clearData()#
删除先前设置的各个角色数据的所有数据。
- clone()#
- 返回类型:
返回此项的副本。该项的子项不会被复制。
当继承自
QStandardItem
时,您可以重写此函数以提供QStandardItemModel
与工厂一起使用,以便在需要时创建新项。参见
setItemPrototype()
operator=()
- 列()#
- 返回类型:
int
返回该项在其父项子项表中的列,如果项没有父项则返回 -1。
- columnCount()#
- 返回类型:
int
返回项目拥有的子项列数。
- data([角色=Qt.UserRole + 1])#
- 参数:
角色 – int
- 返回类型:
对象
返回给定
角色
的项目数据,如果该角色没有数据则返回无效的 QVariant。如果你重实现此函数,你的重实现应该为不处理的角色调用基本实现,否则获取标志,例如通过调用
flags()
,isCheckable()
,isEditable()
等,将不会正常工作。- emitDataChanged()#
导致与此项目关联的模型为此项目发射一个 dataChanged() 信号。
通常只有在你继承了
QStandardItem
并重写了data()
和/或setData()
时,才需要调用此函数。参见
返回项目的标志。
项目标志确定用户可以如何与项目交互。
默认情况下,项目被启用、可编辑、可选、可勾选,并且可以用作拖放操作的数据源和目标。
参见
返回用于渲染项目文本的字体。
参见
返回用于渲染项目前景(例如文本)的画刷。
参见
请参阅
setForeground()
和background()
- hasChildren()
- 返回类型:
bool
返回值为
true
表示此项有子项;否则返回false
。参见
- icon()
- 返回类型:
返回该项的图标。
参见
setIcon()
和iconSize
- index()
- 返回类型:
返回与此项关联的 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)#
- 参数:
行 – int
item –
QStandardItem
此函数是重载的。
在指定位置
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
。如果该项目不是属于该模型的另一个项目的子项,则此函数返回
None
。参见
- __lt__(other)#
- 参数:
other –
QStandardItem
- 返回类型:
bool
如果此项目小于
other
,则返回true
;否则返回false
。默认实现如果项目属于一个模型,则使用项目的排序角色(请参阅
sortRole
)来进行比较;否则,使用项目的 Qt::DisplayRole(text()
)来进行比较。sortChildren()
和sort()
在排序项目时使用此函数。如果您需要进行定制排序,您可以将QStandardItem
进行子类化并重写此函数。- parent()#
- 返回类型:
返回项目的父项目,如果没有父项目,则返回
None
。- read(in)#
- 参数:
in –
QDataStream
从流
in
中读取项目。只读取项目的数据和标志,不读取子项目。参见
- 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中父项状态的自动管理(如果所有子项都被选中,则选中;如果所有子项都被取消选中,则取消选中;如果只有部分子项被选中,则部分选中)。
设置项目的背景笔刷为指定的
brush
。- setCheckState(checkState)#
- 参数:
checkState –
CheckState
将项目的勾选状态设置为
state
。- setCheckable(checkable)#
- 参数:
checkable – bool
设置项目是否可由用户勾选。如果
checkable
为 true,则用户可以勾选该项目;否则用户不能勾选该项目。项目代理将使用旁边的复选框渲染可勾选项目。
- setChild(row, column, item)#
- 参数:
行 – int
列 – int
item –
QStandardItem
将 (
row
,column
) 位置的子项设置为item
。此项目(父项目)将拥有item
。如果需要,行数和列数将增加以适应该项。- setChild(row, item)
- 参数:
行 – int
item –
QStandardItem
此函数是重载的。
将
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 标志,用户也无法选择它。
将项目的标志项设置为
flags
。项目标志决定了用户如何与项目互动。这通常用于禁用项目。
将用于显示项目文本的字体设置为给定的
font
。将用于显示项目前景(例如文本)的画笔设置为给定的
brush
。将项目的图标设置为指定的
icon
。参见
- setRowCount(rows)#
- 参数:
rows – int
将子项目行数设置为
rows
。如果这个值小于rowCount()
,则丢弃不想要的行中的数据。- setSelectable(selectable)#
- 参数:
selectable – bool
设置项目是否可选择。如果
selectable
为 true,用户可以选择该项目;否则,用户不能选择该项目。您可以通过操作它们的视图属性来控制选择行为和模式;请参阅 QAbstractItemView::selectionMode 和 QAbstractItemView::selectionBehavior。
设置项的大小提示为
size
。如果未设置大小提示,则项代理将基于项数据计算大小提示。参见
- setStatusTip(statusTip)#
- 参数:
statusTip – 字符串
将项的状态提示设置为由
statusTip
指定的字符串。- setText(text)#
- 参数:
text – str
将项的文本设置为指定的
text
。- setTextAlignment(textAlignment)#
- 参数:
textAlignment –
AlignmentFlag
的组合
将项文本的对齐设置为指定的
alignment
。- setToolTip(toolTip)#
- 参数:
toolTip – 字符串
将项的工具提示设置为由
toolTip
指定的字符串。- setUserTristate(tristate)#
- 参数:
tristate – bool
设置条目是否处于三态,并受用户控制。如果
tristate
为 true,用户可以循环访问三个独立的状态;否则,该条目将以两个状态可选中。注:这也要求该条目可选中;请参阅isCheckable()
。- setWhatsThis(whatsThis)#
- 参数:
whatsThis – str
将条目的“这是什么?”帮助设置为通过
whatsThis
指定的字符串。返回为条目设置的尺寸提示,如果没有设置尺寸提示,则返回一个无效的
QSize
。如果没有设置尺寸提示,-item dele gate 将根据条目数据计算尺寸提示。
使用指定的
order
和column
中的值对条目的子项进行排序。注意
此函数是递归的,因此它对条目的子项、孙子项等进行排序。
参见
operator
- statusTip()#
- 返回类型:
str
返回条目的状态提示。
- takeChild(row[, column=0])#
- 参数:
行 – int
列 – int
- 返回类型:
在不删除的情况下从指定位置(
row
,column
)移除子项,并返回对该项的指针。如果指定位置没有子项,则此函数返回None
。请注意,此函数与
takeRow()
和takeColumn()
不同,它不影响子表的尺寸。- takeColumn(column)#
- 参数:
列 – int
- 返回类型:
返回一个QStandardItem列表
在不删除列项的情况下删除指定的列,并返回被移除项的指针列表。对于未设置列中的项,列表中对应的指针将是
None
。- takeRow(row)#
- 参数:
行 – int
- 返回类型:
返回一个QStandardItem列表
在不删除行项的情况下删除指定的行,并返回被移除项的指针列表。对于未设置行中的项,列表中对应的指针将是
None
。- text()#
- 返回类型:
str
返回项的文本文本。这是在视图中向用户显示的文本。
参见
- textAlignment()#
- 返回类型:
返回项目文本的对齐方式。
- toolTip()#
- 返回类型:
str
返回项目的工具提示。
- type()#
- 返回类型:
int
返回此项目的类型。类型用于区分自定义项和基本类。在继承
QStandardItem
时,您应重写此函数并返回一个大于或等于UserType
的新值。参见
- whatsThis()#
- 返回类型:
str
返回项目的“这是什么?”帮助信息。
- write(out)#
- 参数:
out –
QDataStream
将项目写入流
out
。仅写入项的数据和标志,不包括子项。参见