16,216
社区成员
发帖
与我相关
我的任务
分享
#include <QtDeclarative/QDeclarativeView>
#include <QtDeclarative/QDeclarativeListProperty>
#include <QMetaObject>
#include <QtDeclarative/QtDeclarative>
#include <QtGui>
#include <QObject>
#include <QtDeclarative/QDeclarativeEngine>
class MyObject : public QObject
{
Q_OBJECT
Q_PROPERTY(QDeclarativeListProperty<MyObject> getInfo READ getInfo CONSTANT)
public:
MyObject()
{}
~MyObject()
{}
QDeclarativeListProperty<MyObject> getInfo()
{
for (int i = 0; i < 10; ++i)
{
list << new MyObject();
}
return QDeclarativeListProperty<MyObject>(this, 0, &MyObject::appendObject, 0, 0, &MyObject::clearObject);
}
static void appendObject(QDeclarativeListProperty<MyObject> *l, MyObject *obj)
{
MyObject *object = qobject_cast<MyObject *>(l->object);
if (object)
object->list << obj;
}
static void clearObject(QDeclarativeListProperty<MyObject> *l)
{
MyObject *object = qobject_cast<MyObject *>(l->object);
if (object) {
foreach (MyObject *o, object->list)
delete o;
object->list.clear();
}
}
QList<MyObject *> list;
};
//#include "main.moc"
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QDeclarativeView view;
qmlRegisterType<MyObject>("QtQuick", 1, 0, "MyObject"); //
//问题处,这丫的东西该怎么用啊。
view.setSource(QUrl::fromLocalFile("test.qml"));
view.show();
return app.exec();
}
Q_PROPERTY(int num READ getnum CONSTANT);
QDeclarativeListProperty<MyObject> getInfo()
{
for (int i = 0; i < 10; ++i)
{
MyObject * k = new MyObject();
k->i = 111111111;
list << k;
}
return QDeclarativeListProperty<MyObject>(this, 0, &MyObject::appendObject, 0, 0, &MyObject::clearObject);
}
Q_INVOKABLE int getnum() const{
return i;
}
int i;
import QtQuick 1.0
Rectangle {
id: page
width: 500; height: 200
color: "red"
MyObject
{
id: myObject
}
ListView {
id: list_view1
anchors.fill: parent
model: myObject.getInfo
delegate: zoneDelegate
}
Component{
id: zoneDelegate
Text {
id: text1
text: num
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter
anchors.fill: parent
font.pixelSize: 12
}
}
}