6
我在写一个QML + Qt应用程序。 予定义的类是这样的:如何将C++模型公开到QML
class MainClass : public QObject
{
Q_OBJECT
public:
rosterItemModel m_rosterItemModel;
.
.
.
}
rosterItemModel模型是从QAbstractListModel派生的类。 我暴露MainClass使用此功能QML部分:
qmlRegisterType<MainClass>("CPPIntegrate", 1, 0, "MainClass");
现在我想从分配这个MainClass模型(m_rosterItemModel)模型在QML一个ListView的财产。 我尝试以下方法,但他们都不是有帮助:(
- 我想声明m_rosterItemModel作为使用Q_PROPERTY的属性。 我不能这样做,因为它说,QAbstractListModel不是 复制能力。
- 我试着使用MainClass一个 Q_INVOKABLE函数来获得一个指向m_rosterItemModel在QML文件,但它不是也有帮助。
有人能帮助我吗?
我使用qmlRegisterType在注册MainClass到QML为了在QML中轻松使用MainClass信号和插槽,可以通过创建MainClass {id:mc}这样的实例来实现。无论如何。谢谢你:) – saeed 2012-08-04 07:05:56
从经验看来,在第二种情况下在necassary注册了模型类:'qmlRegisterType(“CPPIntegrate”,1,0,“MainClass”);'另外,使用'const'修改器似乎打破了互操作。最后一个古怪的位是在头的Q_PROPERTY和Q_INVOKABLE声明中始终引用具有完整名称空间限定的类。此外,如果有人试图返回一些基类(如QAbstractItemModel)指针,互操作性将再次失败,所以要小心。 –
mlvljr
2012-08-05 15:07:44
如何获取mainClassInstance? – Brent81 2013-02-23 14:39:10