Hello, I'd like to ask question regarding connecting the QML to cpp, my goal is to send parameter from QML in forms of username and password to cpp, the cpp itself is connected with the GSoap. If the results return true, then the user can move to another page and if wrong username and password were send, nothing will happen; but at the mean time, I'd just show some text at the console screen. This is my code, please give me a clue of what i was lack at.
Code:
//LogInPage import QtQuick 1.0 import "comp" Rectangle { id: mainWindow width: 360; height: 360 signal dataRequired(string msg,string msg); function success() {console.log("connection done")} function fail() {console.log("fail") Image { id: backgroundAbout source: "comp/pic/background-about.jpg" Text { id: text1 x: 21 y: 118 width: 80 height: 20 text: "UserName:" font.family: "OCR A Extended" font.pixelSize: 24 } Text { id: text2 x: 218 y: 207 width: 80 height: 20 text: "PassWord:" font.family: "OCR A Extended" font.pixelSize: 25 } TextInput { id: inputLogin text: "" x: 0 y: 0 width: 310 height: 22 selectionColor: "#ffffff" font.family: "OCR A Std" } } Rectangle { id: rectangle2 x: 13 y: 234 width: 310 height: 22 color: "#eecfcf" border.color: "#995757" TextInput { id: inputPass text: "" x: 1 y: 1 width: 310 height: 22 selectionColor: "#ffffff" font.family: "OCR A Extended" opacity: 1 } opacity: 0.2 Text { id: text3 x: 143 y: 301 width: 80 height: 20 text: "LogIn" font.family: "OCR A Extended" font.pixelSize: 25 MouseArea { id: mouseareaLogIn anchors.fill: parent onPressed: { myObject.fungsiLogIn(inputLogin.text, inputPass.text} } } } }
Code:
//main.cpp #include "mainwindow.h" //#include "ui_mainwindow.h" #include <qdeclarative.h> #include <QDeclarativeView> #include "loginwidget.h" #include <QDebug> #include <QtCore/QCoreApplication> #include <QtDeclarative/QDeclarativeEngine> #include <QtDeclarative/QDeclarativeComponent> #include <QtDeclarative/QDeclarativeView> #include <QtDeclarative/QDeclarativeContext> #include <QtCore/QVariant> #include <QtCore/QString> #include <QtCore/QMetaObject> #include "mainwindow.h" { // QDeclarativeView view; this->login= new LoginWidget(); this->view= new QDeclarativeView(this); view->engine()->rootContext()->setContextProperty("myObject",&login); setCentralWidget(view); this->show(); } MainWindow::~MainWindow() { } void MainWindow::test(char *username, char *password) { qDebug()<<" Passing done"; }
Code:
//mainwindow.cpp #include <QtGUI/QApplication> #include <QtCore/QCoreApplication> #include "loginwidget.h" //#include "loginpage.qml" #include <qdeclarative.h> #include <QDeclarativeView> #include "mainwindow.h" int main(int argc, char *argv[]) { MainWindow mainwindow; mainwindow.show(); return app.exec(); }
Code:
//loginwidget.cpp #include "loginwidget.h" #include "QDebug" #include "Gsoap/testBinding.nsmap" #include <QDeclarativeView> LoginWidget::LoginWidget() { } void LoginWidget::fungsiLogIn(char *username, char *password){ char *output; if ( clientSoap.ns2__functionLogin(*&username,*&password,*&output) == SOAP_OK) { if (output) { emit sukses(); } else { emit gagal(); } }
Thank you for the aid.
Regards,