From c36f2087de4f47f5f6e473a49b78df63e9cd2106 Mon Sep 17 00:00:00 2001 From: ubbo Date: Sat, 12 Oct 2013 01:08:50 +0000 Subject: recieve signals and read properties from qml git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@1054 34ebc366-c3a9-4b3c-9f84-69acf7962910 --- qmlpage.cpp | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'qmlpage.cpp') diff --git a/qmlpage.cpp b/qmlpage.cpp index 277eb61..5d49f5d 100644 --- a/qmlpage.cpp +++ b/qmlpage.cpp @@ -2,7 +2,8 @@ #include #include #include -#include +#include +#include QMLPage::QMLPage(KgpgCore::KgpgKey key, QWidget *parent) : @@ -14,19 +15,44 @@ QMLPage::QMLPage(KgpgCore::KgpgKey key, QWidget *parent) : // http://jryannel.wordpress.com/ // http://stackoverflow.com/questions/5594769/normal-desktop-user-interface-controls-with-qml + QDeclarativeView *qmlView = new QDeclarativeView; qmlView->setResizeMode(QDeclarativeView::SizeRootObjectToView); qmlView->setSource(QUrl("qrc:/qml/keydetails.qml")); - QDeclarativeContext *context = qmlView->rootContext(); + context = qmlView->rootContext(); context->setContextProperty("id", key.id()); context->setContextProperty("email", key.email()); context->setContextProperty("name", key.name()); - qDebug() << "qml:::::" << QUrl::fromLocalFile("keydetails.qml"); + /* + or: http://xizhizhu.blogspot.de/2010/10/hybrid-application-using-qml-and-qt-c.html + DeclarativePropertyMap map; + map.insert("key1", "value1"); + map.insert("key2", "value2"); + context->setContextProperty("map", &map); + + */ + + + // http://stackoverflow.com/questions/5947455/connecting-qml-signals-to-qt + obj = qmlView->rootObject(); + connect( obj, SIGNAL(clicked()), this, SLOT(qmlClicked())); QHBoxLayout *mainLayout = new QHBoxLayout(this); mainLayout->setSpacing(0); mainLayout->setContentsMargins(0,0,0,0); mainLayout->addWidget(qmlView); + } + +void QMLPage::qmlClicked() { + + // http://stackoverflow.com/questions/9062189/how-to-modify-a-qml-text-from-c + qDebug() << "c++, click recieved from qml"; + qDebug() << "text1" << obj->property("tf1Text").toString(); + + //QObject *text2 = obj->findChild("tf2"); + qDebug() << "text2 "<< obj->property("tf2Text"); +} + -- cgit v1.2.3