【发布时间】:2014-07-03 16:46:37
【问题描述】:
我实现了 QQuickPaintedItem 的一个子类以在 QML 中使用,它在通过注册时独立工作
qmlRegisterType<T>
此类的实例在应用程序启动时创建,并放入存储在 QAbstractItemModel 子类中的 QList 中。我认为我可以轻松地在模型的数据方法中返回每个对象,并将它们用作 QML ListViews 委托。 现在看起来像这样:
模型.cpp:
QVariant AbteilungsModel::data(const QModelIndex &index, int role) const
{
if(index.isValid() && role == Qt::DisplayRole)
{
Abteilung* a = static_cast<Abteilung*>(index.internalPointer());
return QVariant::fromValue(a);
}
}
main.qml:
ListView {
id: abteilungenListView
anchors.fill: parent
spacing: 5
model: abteilungen
delegate: modelData
}
当然,我通过以下方式在 QML 中提供了该模型
void QQmlContext::setContextProperty(const QString & name, QObject * value)
但我不知道如何正确声明 ListViews 委托,因为“modelData”不起作用。
有没有人知道这是否可能,或者你们有更好的解决方案吗? 任何帮助表示赞赏! :)
【问题讨论】:
标签: qt qml qt-quick qabstractitemmodel