[Interest] reading javascript body from c++
Thomas McGuire
thomas.mcguire at kdab.com
Mon Dec 10 10:01:54 CET 2012
Hi,
On Saturday 08 December 2012 20:18:50 Andy Mayer wrote:
> Am 08.12.2012 19:25, schrieb Thomas McGuire:
> > On Saturday 08 December 2012 11:34:17 Andy Mayer wrote:
> >> I have a question regarding the possibilty of reading the body of a
> >> javascript function from c++. I want to create a DSL based on QML and I
> >> have to read the body of a javascript function.
> >>
> >> e.g.
> >>
> >> QML:
> >> Item {
> >>
> >> function action() {
> >>
> >> console.log("Got message:", msg)
> >> return "some return value"
> >>
> >> }
> >>
> >> }
> >>
> >> C++:
> >> QDeclarativeEngine engine;
> >> QDeclarativeContext context(&engine);
> >>
> >> QDeclarativeComponent component(&engine,
> >> QUrl::fromLocalFile("MyItem.qml")); QObject* qmlSpenat =
> >> component.beginCreate(&context);
> >>
> >> QString actionString=qmlSpenat->property("action");//??? it doesn't
> >> work, anything else?
> >
> > Should work with QMetaObject::invokeMethod().
> >
>
> Thanks for the answer, but I don't want to invoke the javascript method.
> I want to read out the body of the javascript method from C++.
>
> e.g.: If I have a Javascript method within a qml-file
>
> function action() { var x=0; return x+2;}
>
> the question is: Is it possible to get the body "var x=0; return x+2;"
> as QString (or something else?) from C++ side?
Ah I see, that is quite an unusual usecase. Getting the function body as a
string from the C++ side is not possible. However, the other way around is
doable, you could pass the function body string from QML to C++, either with a
function call or with a property binding.
Something like
myCppObj.passFunctionString(action.toString())
Assuming that passFunctionString() is a C++ function that takes a QString as
argument.
Regards,
Thomas
--
Thomas McGuire | thomas.mcguire at kdab.com | Software Engineer
KDAB (Deutschland) GmbH&Co KG, a KDAB Group company
Tel. Germany +49-30-521325470, Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-independent software solutions
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3637 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20121210/8013d28f/attachment.bin>
More information about the Interest
mailing list