- class QIdentityProxyModel#
The
QIdentityProxyModel
class proxies its source model unmodified. More…概要#
方法#
def
__init__()
注意
此文档可能包含从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()
使用给定的
parent
构造一个等价模型。