Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QScriptContext类表示一个Qt脚本函数调用。More...
该QScriptContext类表示一个Qt脚本函数调用。
一个QScriptContext提供了访问` this'对象和参数传递给脚本的功能。您通常希望当你写一个本机( C + +)函数来访问这些信息(见QScriptEngine.newFunction( ) )将被调用的脚本代码。例如,当脚本代码
foo(20.5, "hello", new Object())
被评估,一个QScriptContext将被创建,并在上下文将携带的参数作为QScriptValues ,在这种特殊情况下,参数将其中QScriptValue含有数20.5 ,第二QScriptValue包含字符串"hello"以及第三QScriptValue包含一个Qt Script对象。
使用argumentCount()来获取参数传递给函数的数量,argument()来获取参数在一定的指数。该argumentsObject( )函数返回一个包含所有参数的Qt的脚本数组对象,你可以使用QScriptValueIterator遍历其元素,或者传递数组作为参数使用另一个脚本函数QScriptValue.call( ) 。
使用thisObject( )来获得与函数调用相关的` this'对象,并setThisObject( )来设置` this'对象。如果要实现一个本地的“实例方法” ,通常取thisObject( )和访问它的一个或多个属性:
QScriptValue Person_prototype_fullName(QScriptContext *context, QScriptEngine *engine) { QScriptValue self = context->thisObject(); QString result; result += self.property("firstName").toString(); result += QLatin1String(" "); result += self.property("lastName").toString(); return result; }
使用isCalledAsConstructor()来确定函数被调用的构造函数(如"new foo()"(作为构造函数),或者只是"foo()") 。当一个函数被调用的构造函数中,thisObject()中包含的功能,预计以初始化新构造的对象。
使用throwValue()或throwError( )抛出一个异常。
使用callee( ),得到QScriptValue表示被调用的函数。例如,这可以被用于递归地调用该函数。
使用parentContext( )来获得一个指向前面这种情况下在激活堆栈上下文。 (构建某种形式的回溯时,如)这是用于调试目的大多是有用的。
该activationObject( )函数返回用于保存与该函数调用关联的本地变量的对象。你可以通过调用替换激活对象setActivationObject( ) 。这些函数的典型用法是,当你想脚本代码在父上下文的语境来评价,例如:实现一个include()函数:
QScriptValue myInclude(QScriptContext *ctx, QScriptEngine *eng) { QString fileName = ctx->argument(0).toString(); QString contents = readTheFile(fileName); ctx->setActivationObject(ctx->parentContext()->activationObject()); ctx->setThisObject(ctx->parentContext()->thisObject()); return eng->evaluate(contents, fileName); }
使用backtrace( )来获得与这方面有关的人类可读的回溯。这对于实现本机的功能调试时非常有用。该toString( )函数提供了上下文的字符串表示形式。 (QScriptContextInfo提供有关QScriptContext更详细的调试相关的信息。 )
使用engine()来获得一个指向QScriptEngine这方面驻留英寸
此枚举指定类型的错误。
Constant | Value | Description |
---|---|---|
QScriptContext.ReferenceError | 1 | 参考错误。 |
QScriptContext.SyntaxError | 2 | 语法错误。 |
QScriptContext.TypeError | 3 | A型错误。 |
QScriptContext.RangeError | 4 | 值域错误。 |
QScriptContext.URIError | 5 | 一个URI错误。 |
QScriptContext.UnknownError | 0 | 未知错误。 |
这个枚举指定上下文的frameution状态。
Constant | Value | Description |
---|---|---|
QScriptContext.NormalState | 0 | 上下文是在正常状态下。 |
QScriptContext.ExceptionState | 1 | 上下文是在一个特殊的状态。 |
返回此激活对象QScriptContext。激活对象提供与此内容相关联的局部变量。
Note:激活对象可能无法使用,如果没有活动QScriptEngineAgent的,因为它可能会被优化。
See also setActivationObject( )argument()和argumentsObject( ) 。
返回的函数参数在给定的index。
If index\u003e =argumentCount()的一个QScriptValue基本类型的未定义返回。
See also argumentCount( ) 。
返回的参数传递给函数在此调用的次数。
请注意,参数计数可以从参数的正式编号(不同的length物业callee())。
See also argument( ) 。
返回此参数对象QScriptContext。
该参数对象的属性callee(等于callee())和length(等于argumentCount()),和属性0,1,...,argumentCount( ) - 1 ,提供访问参数值。起初,物业P( 0 \u003c=P\u003cargumentCount( ) )具有相同的值作为参数(P) 。在案件时P小于的函数形式参数的数量,P与激活对象的相应属性分享它的值(activationObject())。这意味着,更改此属性将更改激活对象的相应属性,反之亦然。
See also argument()和activationObject( ) 。
返回此人类可读的回溯QScriptContext。
每一行的形式为<function-name>(<arguments>)@<file-name>:<line-number>。
要访问各个部分的调试相关的信息(例如,构造自己的回溯表示) ,使用QScriptContextInfo。
See also QScriptEngine.uncaughtExceptionBacktrace( )QScriptContextInfo和toString( ) 。
返回被调用。被调用的是函数对象,这QScriptContext代表的调用。
返回QScriptEngine这QScriptContext属于。
返回True如果函数被调用的构造函数(如"new foo()"),否则返回False 。
当一个函数被调用的构造函数中,thisObject()包含要初始化的新构造的对象。
Note:此功能只保证工作对应于原生函数的上下文。
返回此父上下文QScriptContext。
设置这个激活对象QScriptContext为给定的activation。
If activation不是一个对象,这个函数不执行任何操作。
Note:为对应的JavaScript函数的上下文,这是只保证工作,如果有一个QScriptEngineAgent活性在发动机上,而功能进行评价。
See also activationObject( ) 。
设置了` this'对象与此相关QScriptContext要thisObject。
If thisObject不是一个对象,这个函数不执行任何操作。
See also thisObject( ) 。
返回此的frameution状态QScriptContext。
返回与此相关联的` this'对象QScriptContext。
See also setThisObject( ) 。
抛出一个error用给定的text。返回创建的错误对象。
该text将被存储在message错误对象的属性。
Error对象将被初始化为包含有关发生错误的位置信息;具体而言,它将拥有属性lineNumber,fileName和stack。这些属性中描述QtScript Extensions to ECMAScript。
See also throwValue()和state( ) 。
这是一个重载函数。
与给定抛出一个错误text。返回创建的错误对象。
See also throwValue()和state( ) 。
用给定的抛出一个异常value。返回抛出(相同的参数)的值。
See also throwError()和state( ) 。
返回此上下文的字符串表示形式。这对于调试非常有用。
此功能被引入Qt的4.4 。
See also backtrace( ) 。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |