[Interest] QWebChannel question

Vyacheslav Lokoyda vyacheslav.lokoyda at outlook.com
Tue Oct 13 17:57:45 CEST 2015


Hello, I use QWebEngineView for render my HTML page and QWebChannel for communicate with my JS code. I can pass QVariant type into JS code as signal parameter or function return value. But I need to pass custome class object. I wrote the class and inherit it from QObject like this:#include <QObject>class test : public QObject{Q_OBJECTpublic:test() : QObject(nullptr) {}test(const test&) : QObject(nullptr) {}test(QObject *parent) : QObject(nullptr) {};int a;
int b;
};Q_DECLARE_METATYPE(test);
than I registered type as:qRegisterMetaType<test>();and emit signal:test t;t.a = 666;t.b = 454;emit home_page_controller.MySignal(t);In JS code I connect to signal ant try to show received data:document.addEventListener("DOMContentLoaded", function (){new QWebChannel(qt.webChannelTransport, function (channel){window.home_page_controller = channel.objects.home_page_controller;    window.home_page_controller.MySignal.connect(function(struct)
    {
        alert(struct)
    })
    });
});But instead [Object] I recived null.Next my step - add my structure into QVariant:QVariant var;test t;t.a = 666;t.b = 454;var.setValue(t);emit home_page_controller.MySignal(var);But null received again. How I can to pass custome data into JS code? Thanks. 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20151013/c73f7dcd/attachment.html>


More information about the Interest mailing list