class QIdentityProxyModel#

The QIdentityProxyModel class proxies its source model unmodified. More

Inheritance diagram of PySide6.QtCore.QIdentityProxyModel

概要#

方法#

注意

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

详细描述#

警告

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

QIdentityProxyModel可以用以完全无修改地代理其源模型的结构,没有任何排序、过滤或其他转换。这类似于一个单位矩阵,其中 A.I = A。

因为它不进行排序或过滤,所以这个类最适合于转换源模型的 data() 的代理模型。例如,可以创建代理模型来定义字体、背景颜色、工具提示等。这消除了在创建模型结构的相同类中实现所有数据处理的需要,并且还可以用来创建可重用的组件。

这还提供了一个方法来更改数据,在这种情况下,源模型由第三方提供,并且无法修改。

class DateFormatProxyModel(QIdentityProxyModel):

  # ...
  def setDateFormatString(formatString):

    m_formatString = formatString

  QVariant data(QModelIndex index, int role) override

    if role != Qt.DisplayRole:
      return QIdentityProxyModel.data(index, role)
    dateTime = sourceModel().data(SourceClass::DateRole).toDateTime()
    return dateTime.toString(m_formatString)

  QMap<int, QVariant> itemData(QModelIndex proxyIndex) override

      QVariant> map = QIdentityProxyModel.itemData(proxyIndex)
      map[Qt.DisplayRole] = data(proxyIndex)
      return map

# private
  m_formatString = QString()
__init__([parent=None])#
参数:

parentQObject

使用给定的 parent 构造一个等价模型。