Quantcast
Channel: Jobs
Viewing all articles
Browse latest Browse all 18427

Creating a QtScript argument object?

$
0
0
Good afternoon all, I’m trying to implement setTimeout() (to mimic the web browser function). My function gets called and is working correctly except for one issue. I can’t figure out how to construct the “argument object” when you call a function with parameters. I’m beginning to feel like the guy in the Monty Python script where he goes looking for the argument clinic… ;) Here’s the script: setTimeout( function(pb){ pb.Text = "Goodbye World"; }, 2000 ); My function is called. I get parameters, which include a QScriptValue object that represents the function call, and one with the delay value (2000). The function has a parameter (pb). How do I get the argument object/script context for the anonymous function? QScriptValue setTimeout( QScriptContext* ctx, QScriptEngine* eng ) {    qDebug() << ctx->backtrace();      QScriptValue timer( QScriptValue::UndefinedValue );    QScriptValue argDelay = ctx->argument( 1 );    if ( argDelay.isNumber() )    {       uint32_t delay = argDelay.toUInt32();       QScriptValue argFunction = ctx->argument( 0 );       if ( argFunction.isFunction() )       {    QScriptValueIterator it( argFunction );    while ( it.hasNext() )    {       it.next();       qDebug() << "  property:" << it.name() << ": " << it.value().toString();    }       }    } } output: 12:41:21: Qt Debug: (”<native>(function (pb) { pb.Text = “Goodbye World”; }, 2000) at -1”, “<global>() at 17”) 12:41:21: Qt Debug: property: “arguments” : “null” 12:41:21: Qt Debug: property: “callee” : “” 12:41:21: Qt Debug: property: “caller” : “null” 12:41:21: Qt Debug: property: “length” : “1” 12:41:21: Qt Debug: property: “name” : “” I examined the “arguments” property but that doesn’t seem to be it. Suggestions are welcome.

Viewing all articles
Browse latest Browse all 18427

Trending Articles