Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <QGuiApplication>
- #include <QQmlPropertyMap>
- #include <QQmlContext>
- #include <QQmlApplicationEngine>
- #include <QQuickWindow>
- #include <QTimer>
- #include <QDebug>
- class Object : public QObject
- {
- Q_OBJECT
- public:
- Object(QObject *parent = 0)
- : QObject(parent),
- m_propertyMap(0)
- {
- m_propertyMap = new QQmlPropertyMap;
- m_propertyMap->insert("name", QVariant(QString("John Smith")));
- m_propertyMap->insert("phone", QVariant(QString("555-5555")));
- QTimer::singleShot(2000, this, SLOT(changeData()));
- }
- QQmlPropertyMap *propertyMap() { return m_propertyMap; }
- private Q_SLOTS:
- void changeData() {
- m_propertyMap->insert("name", "Smith John");
- m_propertyMap->insert("phone", "5555-555");
- }
- void dataChanged(const QString &key, const QVariant &data) {
- qDebug() << "property(" << key << ") = " << data;
- }
- private:
- QQmlPropertyMap *m_propertyMap;
- };
- int main(int argc, char **argv)
- {
- QGuiApplication app(argc, argv);
- Object object;
- QQmlApplicationEngine engine(QUrl::fromLocalFile("main.qml"));
- QObject *topLevel = engine.rootObjects().value(0);
- QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);
- if (!window) {
- qWarning("Error: Your root item has to be a Window.");
- return -1;
- }
- QQmlContext *ctxt = engine.rootContext();
- ctxt->setContextProperty("testData", object.propertyMap());
- window->show();
- return app.exec();
- }
- #include "main.moc"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement