Quantcast
Channel: QtWebEngine
Viewing all articles
Browse latest Browse all 13965

Using C++ with QML

$
0
0
Hello there and thanks for taking the time to look at this post. :) I want to use some c++ code that I have hacked away at in QML bonjourbrowser.h #ifndef BONJOURBACKEND_h #define BONJOURBACKEND_h #include <QString> #include <QTcpSocket> #include "bonjourrecord.h"   class BonjourServiceBrowser; class BonjourServiceResolver; class QHostInfo; class BonjourBackend : public QObject   {     Q_OBJECT public slots:      void updateString(const QList<BonjourRecord> &list); public:     BonjourBackend(QObject *parent = 0);   private:     quint16 blockSize;     BonjourServiceBrowser *bonjourBrowser;     BonjourServiceResolver *bonjourResolver; }; #endif bonjourbackend,cpp #include <QtNetwork> #include "bonjourbackend.h" #include "bonjourservicebrowser.h" #include "bonjourserviceresolver.h"   BonjourBackend::BonjourBackend(QObject *parent)     : QObject(parent), bonjourResolver(0) {     BonjourServiceBrowser *bonjourBrowser = new BonjourServiceBrowser(this);      setenv("AVAHI_COMPAT_NOWARN","1",1);     connect(bonjourBrowser, SIGNAL(currentBonjourRecordsChanged(const QList<BonjourRecord> &)),             this, SLOT(updateString(const QList<BonjourRecord> &)));     bonjourBrowser->browseForServiceType(QLatin1String("_mythbackend-master._tcp")); } void BonjourBackend::updateString(const QList<BonjourRecord> &list) {     QString backend;     foreach (BonjourRecord record, list) {         backend.append(record.serviceName);         qDebug() <<  backend;     } } main.cpp #include "bonjourserviceresolver.h" #include "bonjourservicebrowser.h" #include "bonjourbackend.h" #include "bonjourrecord.h"   int main(int argc, char *argv[]) {       QApplication app(argc, argv);     QtQuick2ApplicationViewer viewer;     viewer.setMainQmlFile(QStringLiteral("qml/Mythbuntu-QML/main.qml"));     viewer.showExpanded();     viewer.show();   BonjourBackend updateString; viewer.rootContext()->setContextProperty("backend",&updateString);        return app.exec(); } The CPP runs great and returns the string that I am looking for but the QML on the other hand does not qml/Mythbuntu-QML/main.qml import QtQuick 2.0 import QtQuick.XmlListModel 2.0 import QtQuick.Particles 2.0 import QtQuick.LocalStorage 2.0 import QtQuick.Window 2.0 import Qt.labs.folderlistmodel 2.0 import "common" import "common/models" import "common/dbUtil.js" as DataBase import "common/Util.js" as Util import  "common/Remote.js" as Remote Rectangle{     id: root   ............ ....................... .......................... .................................           Text{             id: tname             width: Screen.width / 20             height:    Screen.height / 20             color: Qt.darker("orange", 1.5)             text:{                var q =  backend                 return q.toString()             } //drives + "\n" +   appThemePath+DataBase.theme()             anchors{                 left:  themeRec.left                 top: themeRec.top             }         } ...................................... ................................................ ............................................................. ....................................................................         MouseArea{             anchors.fill: mythImage             onClicked: {                 var q =  backend.toString()                 console.log(q)             }         }     }  ............. .................... . ........................... } Here is a the output from qDebug ()the one that I want in QML in the end "Mythbackend on ubuntu" "Mythbackend on ubuntu" and here is what I get with Mouse area and what not in QML BonjourBackend(0xbfd46488) Thanks again for taking the time to look this over and I look forward to solving this, Thanks

Viewing all articles
Browse latest Browse all 13965

Trending Articles