[Interest] qml <--> c++

Nicolas Jäger jagernicolas at legtux.org
Sun Feb 28 14:45:52 CET 2016


Hi Tony,
yesterday when I compiled with Q_OBJECT I got error, but today it works, I have no idea why...but
yes I agree I should have Q_OBJECT. But this doesn't solve my problem. Also I guess I can rewrite a
new class who inherits of QWebEngineView with all Q_PROPERTY and stuff to make it works as I want,
but since we are talking about C++ I expecting to be able to inherits the QML code associated to the
class (QWebEngineView), instead of rewrittng all QML code (for that class) from scratch.

regards,
Nicolas

"Tony Rietwyk" wrote:

> Hi Nicolas, 
> 
>  
> 
> I can see you left out Q_OBJECT on CustomWebView.  Not idea whether the rest will work or not to
> achieve your aim. 
> 
>  
> 
> Tony
> 
>  
> 
>  
> 
> From: Interest [mailto:interest-bounces+tony=rightsoft.com.au at qt-project.org] On Behalf Of
> jagernicolas at legtux.org Sent: Sunday, 28 February 2016 3:16 PM
> To: interest at qt-project.org
> Subject: [Interest] qml <--> c++
> 
>  
> 
> Hi,
> 
> in my main.qml I have this code :
> 
>         WebEngineView {
>             id: webview
>             url: "192.168.2.1"
>             anchors.fill: parent
>             onNewViewRequested: {
>                 var w_ = crecreateObject()
>                 request.openIn(appWin.w_)
>             }
>         }
> 
> when onNewViewRequested is called, I would like to open the url of the request in the the same
> WebEngineView, not creating a new WebEngine. So I was thinking to create some class who inherits
> of WebEngine.
> 
> I didn't found any class called WebEngine I can inherit, or I did not found the header... but I
> found QWebEngine, so I did this :
> 
> // in CustomWebView.h
> #pragma once
> #include <QtWebEngineWidgets/QtWebEngineWidgets>
> 
> class CustomWebView : public QWebEngineView
> {
>     Q_PROPERTY(QString author READ author WRITE setAuthor NOTIFY authorChanged)
> 
> public:
>     CustomWebView(QWidget *parent);
>     CustomWebView();
> 
> };
> 
> I register the qml inside my main.cpp : 
> 
>     qmlRegisterType<CustomWebView>("customWebView", 1, 0, "CustomWebView");
> 
> and in my main.qml I did some changes/add :
> 
> import CustomWebView 1.0
> 
>         CustomWebView {
>             id: webview
>             url: "192.168.2.1"
>             anchors.fill: parent
> //            onNewViewRequested: {
> //                var w_ = crecreateObject()
> //                request.openIn(appWin.w_)
> //            }
>         }
> 
> but, when I compiled, I got the msg : Cannot assign to non-existent property "url"
> 
> obviously, I didi some mistake, but where ?
> 
> Regards,
> Nicolas
> 
>  
> 




More information about the Interest mailing list