aboutsummaryrefslogtreecommitdiffstats
path: root/qmlpage.cpp
diff options
context:
space:
mode:
authorubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2013-10-12 01:08:50 +0000
committerubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2013-10-12 01:08:50 +0000
commitc36f2087de4f47f5f6e473a49b78df63e9cd2106 (patch)
treeb348769fa6a5af8a08dbc1b6c7e1902d4684b3c4 /qmlpage.cpp
parentbutton and textfield in qml (diff)
downloadgpg4usb-c36f2087de4f47f5f6e473a49b78df63e9cd2106.tar.gz
gpg4usb-c36f2087de4f47f5f6e473a49b78df63e9cd2106.zip
recieve signals and read properties from qml
git-svn-id: http://cpunk.de/svn/src/gpg4usb/trunk@1054 34ebc366-c3a9-4b3c-9f84-69acf7962910
Diffstat (limited to 'qmlpage.cpp')
-rw-r--r--qmlpage.cpp32
1 files changed, 29 insertions, 3 deletions
diff --git a/qmlpage.cpp b/qmlpage.cpp
index 277eb61..5d49f5d 100644
--- a/qmlpage.cpp
+++ b/qmlpage.cpp
@@ -2,7 +2,8 @@
#include <QtDeclarative/QDeclarativeView>
#include <QHBoxLayout>
#include <QDebug>
-#include <QDeclarativeContext>
+#include <QGraphicsObject>
+#include <QDeclarativeProperty>
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<QObject*>("tf2");
+ qDebug() << "text2 "<< obj->property("tf2Text");
+}
+