具有源对象类型的 Qt 代理

Qt Proxy with type of source object

我有 class,比如 MyClass,继承自 QSqlRelationalTableModel,我需要转置它(用列更改行)。 This 已找到解决方案。 使用代理后是否可以得到MyClass类型的转置对象?如果不行,还有其他方法吗?

谢谢!

编辑 我想使用的是这样的:

MyClass* myObject = new MyClass(this, db);
TransposeProxyModel* trans = new TransposeProxyModel(this);
trans->setSourceModel(myObject);
ui->tableViewDb->setModel(trans);
ui->tableViewDb->setItemDelegate(new QSqlRelationalDelegate(ui->tableViewDb));

需要将 MyClass(或 QSqlRelationalTableModel)对象粘贴到 QSqlRelationalDelegate 中。

(根据问题澄清进行编辑)

为什么需要将源模型传递到 QSqlRelationalDelegate?如果您使用 stock 委托,则该委托需要在其可视化的数据之上进行操作(来自 TransposeProxyModel 的数据)。

如果您有 QSqlRelationalDelegate 的自定义子类并且出于任何原因想要从那里访问源数据,那么您可以将 myObject 作为第二个参数传递给委托构造函数,或者您可以通过传递给委托方法的 indexQModelIndex::model() 方法访问它。