[webkit-qt] Can I return MyQObject from a slot.

Luciano Montanaro mikelima at cirulla.net
Sun Nov 29 02:57:50 PST 2009

On sabato 28 novembre 2009, Mital Vora wrote:
> hey guys,
> I am a newbie to Qt. I am trying to Inject my custom Object in JavaScript
> space using QWebFrame::addToJavaScriptWindowObject( ) method. I have few
> doubts related to this.

I'm relatively a newbie too, but I've done some experiment.

> 1) can I return custom datatype (a class derived from QObject) MyQObject
> from a slot.

You can do this. I think it has to be a QObject, though.
And you should return it as QObject or QWidget, not as a subclass.

> 2) can I set MyQObject2 as property of MyQObject1 such that In javascript I
> am able to access various properties of MyQObject2 using
> myQObject1.myQObject2.prop1.

I've not tried this, but it should be basically the same as the case above.
Since properties are visible from JavaScript and QObjects slots can be invoked 
from JavaScript, a QObject property should work.

> 3) can I do things like "var obj = new MyQObject(["abc", 1]);" using the
>  new operator to create a new object of a particular type.

I've never done this; the closer thing I tried was a MyObjectFactory returning 
a MyObject instance.

Since a QObject constructor is not a slot, I don't think this works.
But you can try declaring the constructor Q_INVOKABLE and see if it works.
Be sure to tell me if it does... :)

> I am able to do all these using JavaScriptCore in windows. Please help me
> figure out how should I do it using Qt.

What I'm still trying to find out is how to obtain a pointer to the currently 
used engine (to return an array of values, for example).


Luciano Montanaro //
                \X/ mikelima at cirulla.net

More information about the webkit-qt mailing list