<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # QScriptEngine Class Reference ## [[QtScript](index.htm) module] 該代碼QScriptEngine類提供??用于評估的Qt Script代碼的環境。[More...](#details) 繼承[QObject](qobject.html)。 ### Types * `enum QObjectWrapOption { ExcludeChildObjects, ExcludeSuperClassMethods, ExcludeSuperClassProperties, AutoCreateDynamicProperties, ..., ExcludeSlots }` * `class **[QObjectWrapOptions](index.htm)**` * `enum ValueOwnership { QtOwnership, ScriptOwnership, AutoOwnership }` ### Methods * `__init__ (self)` * `__init__ (self, QObject?parent)` * `abortEvaluation (self, QScriptValue?result?=?QScriptValue())` * `QScriptEngineAgent agent (self)` * `QStringList availableExtensions (self)` * `bool canEvaluate (self, QString?program)` * `clearExceptions (self)` * `collectGarbage (self)` * `QScriptContext currentContext (self)` * `QScriptValue defaultPrototype (self, int?metaTypeId)` * `QScriptValue evaluate (self, QString?program, QString?fileName?=?QString(), int?lineNumber?=?1)` * `QScriptValue globalObject (self)` * `bool hasUncaughtException (self)` * `QStringList importedExtensions (self)` * `QScriptValue importExtension (self, QString?extension)` * `installTranslatorFunctions (self, QScriptValue?object?=?QScriptValue())` * `bool isEvaluating (self)` * `QScriptValue newArray (self, int?length?=?0)` * `QScriptValue newDate (self, float?value)` * `QScriptValue newDate (self, QDateTime?value)` * `QScriptValue newFunction (self, callable?signature, int?length?=?0)` * `QScriptValue newFunction (self, callable?signature, QScriptValue?prototype, int?length?=?0)` * `QScriptValue newObject (self)` * `QScriptValue newObject (self, QScriptClass?scriptClass, QScriptValue?data?=?QScriptValue())` * `QScriptValue newQMetaObject (self, QMetaObject?metaObject, QScriptValue?ctor?=?QScriptValue())` * `QScriptValue newQObject (self, QObject?object, ValueOwnership?ownership?=?QScriptEngine.QtOwnership, QObjectWrapOptions?options?=?0)` * `QScriptValue newQObject (self, QScriptValue?scriptObject, QObject?qtObject, ValueOwnership?ownership?=?QScriptEngine.QtOwnership, QObjectWrapOptions?options?=?0)` * `QScriptValue newRegExp (self, QRegExp?regexp)` * `QScriptValue newRegExp (self, QString?pattern, QString?flags)` * `QScriptValue newVariant (self, QVariant?value)` * `QScriptValue newVariant (self, QScriptValue?object, QVariant?value)` * `QScriptValue nullValue (self)` * `popContext (self)` * `int processEventsInterval (self)` * `QScriptContext pushContext (self)` * `reportAdditionalMemoryCost (self, int?size)` * `setAgent (self, QScriptEngineAgent?agent)` * `setDefaultPrototype (self, int?metaTypeId, QScriptValue?prototype)` * `setGlobalObject (self, QScriptValue?object)` * `setProcessEventsInterval (self, int?interval)` * `QScriptValue toObject (self, QScriptValue?value)` * `QScriptString toStringHandle (self, QString?str)` * `QScriptValue uncaughtException (self)` * `QStringList uncaughtExceptionBacktrace (self)` * `int uncaughtExceptionLineNumber (self)` * `QScriptValue undefinedValue (self)` ### Static Methods * `QScriptSyntaxCheckResult checkSyntax (QString?program)` ### Qt Signals * `void signalHandlerException (const QScriptValue&)` * * * ## Detailed Description 該代碼QScriptEngine類提供??用于評估的Qt Script代碼的環境。 請參閱[QtScript](index.htm)文檔,了解關于Qt的腳本語言,以及如何開始使用腳本你的C + +應用程序的信息。 ### Evaluating Scripts 使用[evaluate](qscriptengine.html#evaluate)( )來評估的腳本代碼,這是C + +的等效內置的腳本功能`eval()`。 ``` QScriptEngine myEngine; [QScriptValue](qscriptvalue.html) three = myEngine.evaluate("1 + 2"); ``` [evaluate](qscriptengine.html#evaluate)( )返回一個[QScriptValue](qscriptvalue.html)保存了評價的結果。該[QScriptValue](qscriptvalue.html)類提供函數計算結果轉換為不同的C + +類型(如[QScriptValue.toString](qscriptvalue.html#toString)()和[QScriptValue.toNumber](qscriptvalue.html#toNumber)())。 下面的代碼片段顯示了一個腳本函數可以被定義,然后從C + +調用的使用[QScriptValue.call](qscriptvalue.html#call)(): ``` [QScriptValue](qscriptvalue.html) fun = myEngine.evaluate("(function(a, b) { return a + b; })"); QScriptValueList args; args << 1 << 2; [QScriptValue](qscriptvalue.html) threeAgain = fun.call([QScriptValue](qscriptvalue.html)(), args); ``` 如可以從上面的代碼段中可以看出,一個腳本被提供給發動機以字符串的形式。加載腳本的一種常見方法是通過讀取一個文件的內容,并把它傳遞給[evaluate](qscriptengine.html#evaluate)(): ``` [QString](qstring.html) fileName = "helloworld.qs"; [QFile](qfile.html) scriptFile(fileName); if (!scriptFile.open([QIODevice](qiodevice.html).ReadOnly)) // handle error [QTextStream](qtextstream.html) stream(&scriptFile); [QString](qstring.html) contents = stream.readAll(); scriptFile.close(); myEngine.evaluate(contents, fileName); ``` 在這里,我們傳遞的文件名作為第二個參數[evaluate](qscriptengine.html#evaluate)( ) 。這并不影響評價以任何方式,第二個參數是用來識別腳本調試通用字符串(例如,文件名我們現在將任何顯示[uncaughtExceptionBacktrace](qscriptengine.html#uncaughtExceptionBacktrace)( )涉及腳本) 。 ### Engine Configuration 該[globalObject](qscriptengine.html#globalObject)( )函數返回**Global Object**與腳本引擎相關聯。全局對象的屬性是從任何腳本代碼訪問(也就是說,它們是全局變量) 。通常情況下,評估“用戶”腳本之前,你會希望通過添加一個或多個屬性的全局對象來配置腳本引擎: ``` myEngine.globalObject().setProperty("myNumber", 123); ... [QScriptValue](qscriptvalue.html) myNumberPlusOne = myEngine.evaluate("myNumber + 1"); ``` 添加自定義屬性的腳本環境是提供腳本API是特定于應用程序的標準方法之一。通常這些自定義屬性是由創建的對象[newQObject](qscriptengine.html#newQObject)()或[newObject](qscriptengine.html#newObject)通過創建( )函數或構造函數[newFunction](qscriptengine.html#newFunction)( ) 。 ### Script Exceptions [evaluate](qscriptengine.html#evaluate)( )可以拋出一個腳本異常(例如,由于語法錯誤) ,在這種情況下,返回值是被拋出的值(通常是`Error`對象) 。您可以檢查是否評估通過調用出現異常[hasUncaughtException](qscriptengine.html#hasUncaughtException)( ) 。在這種情況下,你可以調用的錯誤對象的toString ()來獲取錯誤消息。目前未捕獲的異常,也可通過[uncaughtException](qscriptengine.html#uncaughtException)( ) 。調用[clearExceptions](qscriptengine.html#clearExceptions)( )將導致任何未捕獲的異常被清除。 ``` [QScriptValue](qscriptvalue.html) result = myEngine.evaluate(...); if (myEngine.hasUncaughtException()) { int line = myEngine.uncaughtExceptionLineNumber(); qDebug() << "uncaught exception at line" << line << ":" << result.toString(); } ``` 該[checkSyntax](qscriptengine.html#checkSyntax)()函數可以被用來確定是否代碼可以被有效地傳遞給[evaluate](qscriptengine.html#evaluate)( ) 。 ### Script Object Creation 使用[newObject](qscriptengine.html#newObject)()來創建一個標準的Qt Script對象,這是C + +的等效腳本語句`new Object()`。您可以使用對象特定功能??的[QScriptValue](qscriptvalue.html)操縱腳本對象(例如[QScriptValue.setProperty](qscriptvalue.html#setProperty)())。同樣地,使用[newArray](qscriptengine.html#newArray)()來創建一個Qt腳本數組對象。使用[newDate](qscriptengine.html#newDate)( )來創建一個`Date`對象,并[newRegExp](qscriptengine.html#newRegExp)( )來創建一個`RegExp`對象。 ### QObject Integration 使用[newQObject](qscriptengine.html#newQObject)( )來包裝[QObject](qobject.html)(或子類)的指針。[newQObject](qscriptengine.html#newQObject)( )返回一個代理腳本對象,屬性,孩子,的信號和槽[QObject](qobject.html)可作為代理對象的屬性。不需要任何綁定代碼,因為它是使用Qt元對象系統動態地進行。 ``` [QPushButton](qpushbutton.html) button; [QScriptValue](qscriptvalue.html) scriptButton = myEngine.newQObject(&button); myEngine.globalObject().setProperty("button", scriptButton); myEngine.evaluate("button.checkable = true"); qDebug() << scriptButton.property("checkable").toBoolean(); scriptButton.property("show").call(); // call the show() slot ``` 使用[qScriptConnect](qscriptengine.html#qScriptConnect)( )到一個C + +的信號連接到一個腳本函數,這是Qt腳本相當于[QObject.connect](qobject.html#connect)( ) 。當一個腳本函數以響應一個C + +的信號調用時,它可能會導致腳本異常,你可以連接到[signalHandlerException](qscriptengine.html#signalHandlerException)()信號捕捉這樣的異常。 使用[newQMetaObject](qscriptengine.html#newQMetaObject)( )來包裝[QMetaObject](qmetaobject.html),這給你的一個“腳本表示”[QObject](qobject.html)基類。[newQMetaObject](qscriptengine.html#newQMetaObject)( )返回一個代理腳本對象,可作為代理對象的屬性的類的枚舉值。您還可以指定將用于構造類的對象(例如,當構造函數是從一個腳本調用)的函數。對于具有“標準”的Qt類的構造函數, Qt的腳本可以提供一個默認的構造函數的腳本為你見[scriptValueFromQMetaObject](qscriptengine.html#scriptValueFromQMetaObject)( ) 。 如需了解更多信息[QObject](qobject.html)整合,見[Making Applications Scriptable](index.htm) ### Support for Custom C++ Types 使用[newVariant](qscriptengine.html#newVariant)( )來包裝[QVariant](qvariant.html)。這可以被用來存儲自定義的值(非[QObject](qobject.html)已登記的Qt的間位型系統)的C + +類型。為了使這種類型的腳本化的,通常一個原型(代表)對象的C + +類通過調用相關聯[setDefaultPrototype](qscriptengine.html#setDefaultPrototype)();原型對象定義了C + +類型的腳本API 。不同的是[QObject](qobject.html)集成,沒有自動綁定可能在這里,即你必須使用創建腳本API自己,例如[QScriptable](index.htm)類。 使用[fromScriptValue](qscriptengine.html#fromScriptValue)( )投從[QScriptValue](qscriptvalue.html)另一種類型,并[toScriptValue](qscriptengine.html#toScriptValue)( )來創建一個[QScriptValue](qscriptvalue.html)從另一個值。您可以指定C + +類型的轉換是要與執行[qScriptRegisterMetaType](qscriptengine.html#qScriptRegisterMetaType)()和[qScriptRegisterSequenceMetaType](qscriptengine.html#qScriptRegisterSequenceMetaType)( ) 。默認情況下, Qt的腳本將使用[QVariant](qvariant.html)存儲自定義類型的值。 ### Importing Extensions 使用[importExtension](qscriptengine.html#importExtension)( )來導入基于插件的擴展進入發動機。通話[availableExtensions](qscriptengine.html#availableExtensions)()來獲取一個列表命名所有可用的擴展,[importedExtensions](qscriptengine.html#importedExtensions)()來獲取一個列表的命名只有那些已導入擴展。 Call [pushContext](qscriptengine.html#pushContext)()打開了一個新的變量范圍,[popContext](qscriptengine.html#popContext)( )來關閉當前作用域。如果你正在實施,評估含臨時變量定義(如腳本代碼的擴展,這是非常有用`var foo = 123;`)是安全的丟棄時,評估已經完成。 ### Native Functions 使用[newFunction](qscriptengine.html#newFunction)( )包裝機(C + + )的功能,包括構造為自己的自定義類型,使得這些可以從腳本代碼被調用。這些功能必須有簽名[QScriptEngine.FunctionSignature](qscriptengine.html#FunctionSignature-typedef)。然后,您可以通過該函數作為參數傳遞給[newFunction](qscriptengine.html#newFunction)( ) 。這里是一個函數返回它的前兩個參數的和的一個例子: ``` [QScriptValue](qscriptvalue.html) myAdd([QScriptContext](qscriptcontext.html) *context, QScriptEngine *engine) { [QScriptValue](qscriptvalue.html) a = context->argument(0); [QScriptValue](qscriptvalue.html) b = context->argument(1); return a.toNumber() + b.toNumber(); } ``` 為了揭露這個功能的腳本代碼,可以將其設置為全局對象的一個屬性: ``` [QScriptValue](qscriptvalue.html) fun = myEngine.newFunction(myAdd); myEngine.globalObject().setProperty("myAdd", fun); ``` 一旦做到這一點,腳本代碼可以調用你的函數在完全相同的方式作為一個“正常”的腳本函數: ``` [QScriptValue](qscriptvalue.html) result = myEngine.evaluate("myAdd(myNumber, 1)"); ``` ### Long-running Scripts 如果您需要評估從主(圖形用戶界面)線程可能長時間運行腳本,你應該首先調用[setProcessEventsInterval](qscriptengine.html#setProcessEventsInterval)( ) ,以確保該GUI保持響應。你可以通過調用中止當前運行腳本[abortEvaluation](qscriptengine.html#abortEvaluation)( ) 。您可以決定是否發動機是通過調用當前正在運行的腳本[isEvaluating](qscriptengine.html#isEvaluating)( ) 。 ### Garbage Collection Qt的腳本對象可以被垃圾收集時,他們不再被引用。有沒有保證,以時自動垃圾回收將會發生。 該[collectGarbage](qscriptengine.html#collectGarbage)( )函數可以被調用來顯式地請求垃圾收集。 該[reportAdditionalMemoryCost](qscriptengine.html#reportAdditionalMemoryCost)( )函數可以被調用,以表明一個Qt Script對象佔并非由腳本環境管理內存。報告的額外成本使得它更可能是垃圾收集器將被觸發。這可能是有用的,例如,當許多習俗,當地人的Qt Script對象被分配。 ### Core Debugging/Tracing Facilities 由于Qt的4.4 ,您可以通過有關腳本執行(如腳本函數調用和語句的執行)活動通知[QScriptEngineAgent](qscriptengineagent.html)接口,見[setAgent](qscriptengine.html#setAgent)()函數。這可以被用來實現調試和代碼QScriptEngine的分析。 * * * ## Type Documentation ``` QScriptEngine.QObjectWrapOption ``` 這些標志包裝時指定一個選項[QObject](qobject.html)終場前[newQObject](qscriptengine.html#newQObject)( ) 。 | Constant | Value | Description | | --- | --- | --- | | `QScriptEngine.ExcludeChildObjects` | `0x0001` | 該腳本對象不會暴露子對象的屬性。 | | `QScriptEngine.ExcludeSuperClassMethods` | `0x0002` | 該腳本對象不會暴露在超類繼承的信號和槽。 | | `QScriptEngine.ExcludeSuperClassProperties` | `0x0004` | 該腳本對象不會暴露在超類繼承的屬性。 | | `QScriptEngine.ExcludeSuperClassContents` | `0x0006` | 簡寫形式ExcludeSuperClassMethods &#124; ExcludeSuperClassProperties | | `QScriptEngine.ExcludeDeleteLater` | `0x0010` | 該腳本對象將不會暴露[QObject.deleteLater](qobject.html#deleteLater)()槽。 | | `QScriptEngine.ExcludeSlots` | `0x0020` | 該腳本對象將不會暴露[QObject](qobject.html)的插槽。 | | `QScriptEngine.AutoCreateDynamicProperties` | `0x0100` | 不已經在存在屬性[QObject](qobject.html)將創建作為該對象的動態屬性,而不是作為腳本對象的屬性。 | | `QScriptEngine.PreferExistingWrapperObject` | `0x0200` | 如果與請求的配置一個包裝對象已存在,則返回該對象。 | | `QScriptEngine.SkipMethodsInEnumeration` | `0x0008` | 枚舉對象的屬性時,不包括方法(信號和槽) 。 | 該QObjectWrapOptions類型是一個typedef為[QFlags](index.htm)\u003cQObjectWrapOption\u003e 。它存儲QObjectWrapOption值的或組合。 ``` QScriptEngine.ValueOwnership ``` 包裝一個C + +的值,例如,當此枚舉指定所有權通過使用[newQObject](qscriptengine.html#newQObject)( ) 。 | Constant | Value | Description | | --- | --- | --- | | `QScriptEngine.QtOwnership` | `0` | 標準的Qt所有權規則適用,即相關聯的對象將永遠不會被明確地被腳本引擎刪除。這是默認的。 ([QObject](qobject.html)所有權的解釋[Object Trees & Ownership](index.htm)。 ) | | `QScriptEngine.ScriptOwnership` | `1` | 該值是由腳本環境擁有。相關的數據都將被刪除時,相應的(比如,在垃圾收集器發現,有沒有更多的活動引用到的值) 。 | | `QScriptEngine.AutoOwnership` | `2` | 如果關聯的對象有父, Qt的所有權規則( QtOwnership ),否則,該對象是由腳本環境( ScriptOwnership )全資擁有。 | * * * ## Method Documentation ``` QScriptEngine.__init__ (self) ``` 構造一個[QScriptEngine](qscriptengine.html)對象。 該[globalObject](qscriptengine.html#globalObject)( )初始化為具有屬性中所描述 [ECMA-262](http://www.ecma-international.org/publications/standards/Ecma-262.htm),第15.1節。 ``` QScriptEngine.__init__ (self, QObject?parent) ``` 該_parent_的說法,如果不是沒有,原因_self_通過Qt的,而不是PyQt的擁有。 構造一個[QScriptEngine](qscriptengine.html)與給定對象_parent_。 該[globalObject](qscriptengine.html#globalObject)( )初始化為具有屬性中所描述 [ECMA-262](http://www.ecma-international.org/publications/standards/Ecma-262.htm),第15.1節。 ``` QScriptEngine.abortEvaluation (self, QScriptValue?result?=?QScriptValue()) ``` 中止任何腳本評估目前正在進行這款發動機。給定_result_被傳遞回作為評價的結果(即,它是從調用返回到[evaluate](qscriptengine.html#evaluate)( )被中止) 。 如果發動機沒有評估一個腳本(即[isEvaluating](qscriptengine.html#isEvaluating)( )返回False ) ,這個函數不執行任何操作。 調用此函數,如果您需要中止正在運行的腳本出于某種原因,如當你發現這個腳本已經運行了幾秒鐘沒有完成。 此功能被引入Qt的4.4 。 **See also** [evaluate](qscriptengine.html#evaluate)( )[isEvaluating](qscriptengine.html#isEvaluating)()和[setProcessEventsInterval](qscriptengine.html#setProcessEventsInterval)( ) 。 ``` QScriptEngineAgent QScriptEngine.agent (self) ``` [ 返回在此引擎上,或0當前已安裝,如果沒有安裝代理的代理。 此功能被引入Qt的4.4 。 ](qscriptengineagent.html) [**See also**](qscriptengineagent.html) [setAgent](qscriptengine.html#setAgent)( ) 。 ``` QStringList QScriptEngine.availableExtensions (self) ``` 返回一個列表的命名可以導入現有的擴展使用[importExtension](qscriptengine.html#importExtension)()函數。該列表包括已導入擴展。 此功能被引入Qt的4.4 。 **See also** [importExtension](qscriptengine.html#importExtension)()和[importedExtensions](qscriptengine.html#importedExtensions)( ) 。 ``` bool QScriptEngine.canEvaluate (self, QString?program) ``` ``` QScriptSyntaxCheckResult QScriptEngine.checkSyntax (QString?program) ``` [](qscriptsyntaxcheckresult.html) [檢查給定的語法_program_。返回](qscriptsyntaxcheckresult.html)[QScriptSyntaxCheckResult](qscriptsyntaxcheckresult.html)對象,該對象包含檢查的結果。 此功能被引入Qt的4.5 。 ``` QScriptEngine.clearExceptions (self) ``` 清除在這款發動機的任何未捕獲的異常。 此功能被引入Qt的4.4 。 **See also** [hasUncaughtException](qscriptengine.html#hasUncaughtException)( ) 。 ``` QScriptEngine.collectGarbage (self) ``` 運行垃圾回收器。 垃圾收集器將嘗試通過定位和處理不再可達腳本環境中的對象回收內存。 通常你不需要調用此函數;垃圾收集器會自動被調用時,[QScriptEngine](qscriptengine.html)決定是明智的,這樣做(即已經建立了一定數量的新對象時) 。但是,您可以明確地請求垃圾收集,應盡快進行調用這個函數。 **See also** [reportAdditionalMemoryCost](qscriptengine.html#reportAdditionalMemoryCost)( ) 。 ``` QScriptContext QScriptEngine.currentContext (self) ``` [ 返回當前上下文。 ](qscriptcontext.html) [當前上下文通常訪問來檢索本地函數的參數和' this'對象,為了方便,它可作為第一個參數](qscriptcontext.html)[QScriptEngine.FunctionSignature](qscriptengine.html#FunctionSignature-typedef)。 ``` QScriptValue QScriptEngine.defaultPrototype (self, int?metaTypeId) ``` [](qscriptvalue.html) [返回與給定關聯的默認原型_metaTypeId_,或無效](qscriptvalue.html)[QScriptValue](qscriptvalue.html)如果沒有預設的樣機已定。 **See also** [setDefaultPrototype](qscriptengine.html#setDefaultPrototype)( ) 。 ``` QScriptValue QScriptEngine.evaluate (self, QString?program, QString?fileName?=?QString(), int?lineNumber?=?1) ``` [ Evaluates _program_,使用_lineNumber_作為基準線數,并返回該評價的結果。 腳本代碼會在當前上下文中進行評估。 ](qscriptvalue.html) [的評價_program_可能會導致發動機異常,在這種情況下,返回值將是被拋出(通常是一個例外`Error`對象) 。您可以致電](qscriptvalue.html)[hasUncaughtException](qscriptengine.html#hasUncaughtException)( ) ,以確定是否發生在最后一次通話異常,評估( ) 。 _lineNumber_用于指定一個開始行號為_program_;報告,涉及到本次評測的發動機(如行號信息[uncaughtExceptionLineNumber](qscriptengine.html#uncaughtExceptionLineNumber)( ) )將基于這個論點。例如,如果_program_由兩行代碼,并在第二行的語句會導致一個腳本異常,[uncaughtExceptionLineNumber](qscriptengine.html#uncaughtExceptionLineNumber)( )將返回給定的_lineNumber_加1 。當沒有指定起始行號,行號為1型。 _fileName_用于錯誤報告。例如,在錯誤的對象的文件名可以訪問通過“文件名”屬性,如果它提供了這個功能。 **See also** [canEvaluate](index.htm#canEvaluate)( )[hasUncaughtException](qscriptengine.html#hasUncaughtException)( )[isEvaluating](qscriptengine.html#isEvaluating)()和[abortEvaluation](qscriptengine.html#abortEvaluation)( ) 。 ``` QScriptValue QScriptEngine.globalObject (self) ``` [ 返回此引擎的全局對象。 ](qscriptvalue.html) [默認情況下,全局對象包含了內置對象是一部分](qscriptvalue.html) [ECMA-262](http://www.ecma-international.org/publications/standards/Ecma-262.htm),如數學,日期和字符串。此外,您可以設置全局對象的屬性,以使所有腳本代碼你自己的擴展。在腳本代碼的非局部變量將被創建為全局對象的屬性,以及在全局代碼中的局部變量。 **See also** [setGlobalObject](qscriptengine.html#setGlobalObject)( ) 。 ``` bool QScriptEngine.hasUncaughtException (self) ``` 返回True如果最后一個腳本評價,導致未捕獲的異常,否則返回False 。 唯一的例外狀態被清除時,[evaluate](qscriptengine.html#evaluate)()被調用。 **See also** [uncaughtException](qscriptengine.html#uncaughtException)()和[uncaughtExceptionLineNumber](qscriptengine.html#uncaughtExceptionLineNumber)( ) 。 ``` QStringList QScriptEngine.importedExtensions (self) ``` 返回一個列表的命名已導入的擴展使用[importExtension](qscriptengine.html#importExtension)()函數。 此功能被引入Qt的4.4 。 **See also** [availableExtensions](qscriptengine.html#availableExtensions)( ) 。 ``` QScriptValue QScriptEngine.importExtension (self, QString?extension) ``` [](qscriptvalue.html) [進口給定的_extension_這個](qscriptvalue.html)[QScriptEngine](qscriptengine.html)。回報[undefinedValue](qscriptengine.html#undefinedValue)( )如果分機已成功導入。您可以致電[hasUncaughtException](qscriptengine.html#hasUncaughtException)()來檢查是否發生錯誤,在這種情況下,返回值是被拋出的異常(通常是一個值`Error`對象) 。 [QScriptEngine](qscriptengine.html)確保一個特定的擴展僅導入一次,隨后調用importExtension ( )使用相同的擴展名會做什么,回報[undefinedValue](qscriptengine.html#undefinedValue)( ) 。 **See also** [availableExtensions](qscriptengine.html#availableExtensions)( )[QScriptExtensionPlugin](index.htm)和[Creating QtScript Extensions](index.htm)。 ``` QScriptEngine.installTranslatorFunctions (self, QScriptValue?object?=?QScriptValue()) ``` 安裝在給定的翻譯功能_object_或全局對象上,如果沒有指定對象。 Qt的劇本翻譯的功能和C + +翻譯功能之間的關系如下表所述: | Script Function | Corresponding C++ Function | | --- | --- | | qsTr() | [QObject.tr](qobject.html#tr)() | | [QT_TR_NOOP](index.htm#QT_TR_NOOP)() | [QT_TR_NOOP](index.htm#QT_TR_NOOP)() | | qsTranslate() | [QCoreApplication.translate](qcoreapplication.html#translate)() | | [QT_TRANSLATE_NOOP](index.htm#QT_TRANSLATE_NOOP)() | [QT_TRANSLATE_NOOP](index.htm#QT_TRANSLATE_NOOP)() | | qsTrId() (since 4.7) | [qtTrId](index.htm#qtTrId)() | | [QT_TRID_NOOP](index.htm#QT_TRID_NOOP)() (since 4.7) | [QT_TRID_NOOP](index.htm#QT_TRID_NOOP)() | 此功能被引入Qt的4.5 。 **See also** [Internationalization with Qt](index.htm)。 ``` bool QScriptEngine.isEvaluating (self) ``` 返回True如果該發動機目前正在評估一個腳本,否則返回False 。 此功能被引入Qt的4.4 。 **See also** [evaluate](qscriptengine.html#evaluate)()和[abortEvaluation](qscriptengine.html#abortEvaluation)( ) 。 ``` QScriptValue QScriptEngine.newArray (self, int?length?=?0) ``` [](qscriptvalue.html) [創建](qscriptvalue.html)[QtScript](index.htm)與給定的類數組對象_length_。 **See also** [newObject](qscriptengine.html#newObject)( ) 。 ``` QScriptValue QScriptEngine.newDate (self, float?value) ``` [](qscriptvalue.html) [創建](qscriptvalue.html)[QtScript](index.htm)之類的日期與給定對象_value_(毫秒自1970年1月1日的數字, UTC ) 。 ``` QScriptValue QScriptEngine.newDate (self, QDateTime?value) ``` [](qscriptvalue.html) [創建](qscriptvalue.html)[QtScript](index.htm)從給定的類Date對象_value_。 **See also** [QScriptValue.toDateTime](qscriptvalue.html#toDateTime)( ) 。 ``` QScriptValue QScriptEngine.newFunction (self, callable?signature, int?length?=?0) ``` [](qscriptvalue.html) [創建](qscriptvalue.html)[QScriptValue](qscriptvalue.html)一個封裝了原生( C + +)的功能。_fun_必須是一個C + +函數簽名[QScriptEngine.FunctionSignature](qscriptengine.html#FunctionSignature-typedef)。_length_是參數的數量_fun_預計,這將成為`length`的創建屬性[QScriptValue](qscriptvalue.html)。 需要注意的是_length_只給出了函數需要的參數個數的指示,一個函數的實際調用可以包括任意數量的參數。您可以檢查[argumentCount()](qscriptcontext.html#argumentCount)的[QScriptContext](qscriptcontext.html)與調用相關聯,以確定傳遞的參數的實際數目。 A `prototype`屬性是生成的函數對象自動創建的,以提供該功能將被用作構造函數的可能性。 通過結合newFunction ( )和屬性標志[QScriptValue.PropertyGetter](qscriptvalue.html#PropertyFlag-enum)和[QScriptValue.PropertySetter](qscriptvalue.html#PropertyFlag-enum),您可以創建像在腳本代碼的正常性能的腳本對象的屬性,但實際上通過函數(類似于物業的工作訪問[Qt's Property System](index.htm#qt-s-property-system)) 。例如: ``` static [QScriptValue](qscriptvalue.html) getSetFoo([QScriptContext](qscriptcontext.html) *context, [QScriptEngine](qscriptengine.html) *engine) { [QScriptValue](qscriptvalue.html) callee = context->callee(); if (context->argumentCount() == 1) // writing? callee.setProperty("value", context->argument(0)); return callee.property("value"); } .... [QScriptValue](qscriptvalue.html) object = engine.newObject(); object.setProperty("foo", engine.newFunction(getSetFoo), [QScriptValue](qscriptvalue.html).PropertyGetter | [QScriptValue](qscriptvalue.html).PropertySetter); ``` 當屬性`foo`腳本對象的腳本代碼隨后訪問,`getSetFoo()`將被調用來處理訪問。在這種特殊情況下,我們選擇了存儲的“真實”的價值`foo`作為訪問函數本身的屬性,你可以自由的做任何你喜歡這個功能。 在上面的例子中,一個單一的原生函數用來處理讀取和寫入屬性;參數計數來確定,如果我們正在處理一個讀或寫。您還可以使用兩個單獨的函數,只需指定相關標志([QScriptValue.PropertyGetter](qscriptvalue.html#PropertyFlag-enum) or [QScriptValue.PropertySetter](qscriptvalue.html#PropertyFlag-enum))設置屬性時,例如: ``` [QScriptValue](qscriptvalue.html) object = engine.newObject(); object.setProperty("foo", engine.newFunction(getFoo), [QScriptValue](qscriptvalue.html).PropertyGetter); object.setProperty("foo", engine.newFunction(setFoo), [QScriptValue](qscriptvalue.html).PropertySetter); ``` **See also** [QScriptValue.call](qscriptvalue.html#call)( ) 。 ``` QScriptValue QScriptEngine.newFunction (self, callable?signature, QScriptValue?prototype, int?length?=?0) ``` [ 從創建一個構造函數_fun_用給定的_length_。該`prototype`所得到的函數的屬性被設定為給定的_prototype_。該`constructor`物業_prototype_被設定為所產生的功能。 ](qscriptvalue.html) [當一個函數被調用的構造函數(例如`new Foo()`) ,與函數調用相關的` this'對象是新對象,該函數將初始化;這個默認構造對象的原型將是功能的公共`prototype`屬性。如果你總是想要的功能表現為一個構造函數(如`Foo()`還應該創建一個新的對象) ,或者如果你需要創建自己的對象,而不是使用默認的` this'對象,你應該確保你的對象的原型是否設置正確,或者通過手動設置它,或者,當包裝一個自定義類型,由經注冊的](qscriptvalue.html)[defaultPrototype](qscriptengine.html#defaultPrototype)該類型的() 。例如: ``` [QScriptValue](qscriptvalue.html) Foo([QScriptContext](qscriptcontext.html) *context, [QScriptEngine](qscriptengine.html) *engine) { if (context->calledAsConstructor()) { // initialize the new object context->thisObject().setProperty("bar", ...); // ... // return a non-object value to indicate that the // thisObject() should be the result of the "new Foo()" expression return engine->undefinedValue(); } else { // not called as "new Foo()", just "Foo()" // create our own object and return that one [QScriptValue](qscriptvalue.html) object = engine->newObject(); object.setPrototype(context->callee().property("prototype")); object.setProperty("baz", ...); return object; } } ... [QScriptValue](qscriptvalue.html) fooProto = engine->newObject(); fooProto.setProperty("whatever", ...); engine->globalObject().setProperty("Foo", engine->newFunction(Foo, fooProto)); ``` 包裝一個自定義類型,并為它提供一個構造函數,你通常會做這樣的事情: ``` class Bar { ... }; Q_DECLARE_METATYPE(Bar) [QScriptValue](qscriptvalue.html) constructBar([QScriptContext](qscriptcontext.html) *context, [QScriptEngine](qscriptengine.html) *engine) { Bar bar; // initialize from arguments in context, if desired ... return engine->toScriptValue(bar); } class BarPrototype : public [QObject](qobject.html), public [QScriptable](index.htm) { // provide the scriptable interface of this type using slots and properties ... }; ... // create and register the Bar prototype and constructor in the engine BarPrototype *barPrototypeObject = new BarPrototype(...); [QScriptValue](qscriptvalue.html) barProto = engine->newQObject(barPrototypeObject); engine->setDefaultPrototype(qMetaTypeId<Bar>, barProto); [QScriptValue](qscriptvalue.html) barCtor = engine->newFunction(constructBar, barProto); engine->globalObject().setProperty("Bar", barCtor); ``` ``` QScriptValue QScriptEngine.newObject (self) ``` [](qscriptvalue.html) [創建](qscriptvalue.html)[QtScript](index.htm)Object類的對象。 所創建的對象的原型將是對象的原型對象。 **See also** [newArray](qscriptengine.html#newArray)()和[QScriptValue.setProperty](qscriptvalue.html#setProperty)( ) 。 ``` QScriptValue QScriptEngine.newObject (self, QScriptClass?scriptClass, QScriptValue?data?=?QScriptValue()) ``` [ 這是一個重載函數。 ](qscriptvalue.html) [創建](qscriptvalue.html)[QtScript](index.htm)給定的類的對象,_scriptClass_。 所創建的對象的原型將是對象的原型對象。 _data_如果指定,則設定為新的對象的內部數據(使用[QScriptValue.setData](qscriptvalue.html#setData)())。 此功能被引入Qt的4.4 。 **See also** [QScriptValue.scriptClass](qscriptvalue.html#scriptClass)()和[reportAdditionalMemoryCost](qscriptengine.html#reportAdditionalMemoryCost)( ) 。 ``` QScriptValue QScriptEngine.newQMetaObject (self, QMetaObject?metaObject, QScriptValue?ctor?=?QScriptValue()) ``` [](qscriptvalue.html) [創建](qscriptvalue.html)[QtScript](index.htm)對象,它代表一個[QObject](qobject.html)類,使用給定的_metaObject_和構造函數_ctor_。 的枚舉_metaObject_(與Q_ENUMS申報)可作為創建的屬性[QScriptValue](qscriptvalue.html)。當類被稱為一個函數,_ctor_將被調用來創建類的新實例。 例如: ``` [QScriptValue](qscriptvalue.html) mySpecialQObjectConstructor([QScriptContext](qscriptcontext.html) *context, [QScriptEngine](qscriptengine.html) *engine) { [QObject](qobject.html) *parent = context->argument(0).toQObject(); [QObject](qobject.html) *object = new [QObject](qobject.html)(parent); return engine->newQObject(object, [QScriptEngine](qscriptengine.html).ScriptOwnership); } ... [QScriptValue](qscriptvalue.html) ctor = engine.newFunction(mySpecialQObjectConstructor); [QScriptValue](qscriptvalue.html) metaObject = engine.newQMetaObject(&[QObject](qobject.html).staticMetaObject, ctor); engine.globalObject().setProperty("QObject", metaObject); [QScriptValue](qscriptvalue.html) result = engine.evaluate("new QObject()"); ``` **See also** [newQObject](qscriptengine.html#newQObject)()和[scriptValueFromQMetaObject](qscriptengine.html#scriptValueFromQMetaObject)( ) 。 ``` QScriptValue QScriptEngine.newQObject (self, QObject?object, ValueOwnership?ownership?=?QScriptEngine.QtOwnership, QObjectWrapOptions?options?=?0) ``` [](qscriptvalue.html) [創建](qscriptvalue.html)[QtScript](index.htm)對象,它封裝了給定的[QObject](qobject.html) _object_,使用給定的_ownership_。給定_options_控制與所得到的腳本對象的交互的各個方面。 信號和槽,屬性和兒童_object_可作為所創建的屬性[QScriptValue](qscriptvalue.html)。欲了解更多信息,請參閱[QtScript](index.htm)文檔。 If _object_是一個空指針,這個函數返回[nullValue](qscriptengine.html#nullValue)( ) 。 如果默認樣機已經注冊了_object_的類(或它的超類,遞歸) ,新的腳本對象的原型將被設置為默認的原型。 如果給定的_object_外面被刪除[QtScript](index.htm)的控制,任何試圖訪問已刪除[QObject](qobject.html)的成員通過[QtScript](index.htm)包裝對象(通過腳本代碼或C + + )將導致腳本異常。 **See also** [QScriptValue.toQObject](qscriptvalue.html#toQObject)()和[reportAdditionalMemoryCost](qscriptengine.html#reportAdditionalMemoryCost)( ) 。 ``` QScriptValue QScriptEngine.newQObject (self, QScriptValue?scriptObject, QObject?qtObject, ValueOwnership?ownership?=?QScriptEngine.QtOwnership, QObjectWrapOptions?options?=?0) ``` [ 這是一個重載函數。 初始化給定的_scriptObject_保持在給定_qtObject_,并返回該_scriptObject_。 ](qscriptvalue.html) [此功能使您能夠“促進”一個普通的Qt Script對象(由創建](qscriptvalue.html)[newObject](qscriptengine.html#newObject)()函數),以一[QObject](qobject.html)代理,或取代[QObject](qobject.html)包含先前所創建的對象內[newQObject](qscriptengine.html#newQObject)()函數。 的原型( )_scriptObject_將保持不變。 If _scriptObject_不是一個對象,這個函數的行為類似于正常[newQObject](qscriptengine.html#newQObject)( ) ,也就是說,它會創建一個新的腳本對象并返回它。 當你想提供一個腳本構造的這個功能是非常有用的[QObject](qobject.html)基類。如果你的構造函數中調用一個`new`表達式([QScriptContext.isCalledAsConstructor](qscriptcontext.html#isCalledAsConstructor)( )返回True ) ,你可以通過[QScriptContext.thisObject](qscriptcontext.html#thisObject)( ) (默認構造腳本對象)這個函數來初始化新的對象。 此功能被引入Qt的4.4 。 **See also** [reportAdditionalMemoryCost](qscriptengine.html#reportAdditionalMemoryCost)( ) 。 ``` QScriptValue QScriptEngine.newRegExp (self, QRegExp?regexp) ``` [](qscriptvalue.html) [創建](qscriptvalue.html)[QtScript](index.htm)一流的RegExp與給定的對象_regexp_。 **See also** [QScriptValue.toRegExp](qscriptvalue.html#toRegExp)( ) 。 ``` QScriptValue QScriptEngine.newRegExp (self, QString?pattern, QString?flags) ``` [](qscriptvalue.html) [創建](qscriptvalue.html)[QtScript](index.htm)一流的RegExp與給定的對象_pattern_和_flags_。 法律標志是“G” (全局) , 'I' (忽略大小寫) ,和“M”(多行) 。 ``` QScriptValue QScriptEngine.newVariant (self, QVariant?value) ``` [](qscriptvalue.html) [創建](qscriptvalue.html)[QtScript](index.htm)物體保持給定的變體_value_。 如果默認樣機已經注冊的元類型的id_value_,那么創建的對象的原型將是原型,否則,原型將是對象的原型對象。 **See also** [setDefaultPrototype](qscriptengine.html#setDefaultPrototype)( )[QScriptValue.toVariant](qscriptvalue.html#toVariant)()和[reportAdditionalMemoryCost](qscriptengine.html#reportAdditionalMemoryCost)( ) 。 ``` QScriptValue QScriptEngine.newVariant (self, QScriptValue?object, QVariant?value) ``` [ 這是一個重載函數。 初始化給定的Qt腳本_object_以保持給定的變體_value_,并返回該_object_。 ](qscriptvalue.html) [此功能使您能夠“促進”一個普通的Qt Script對象(由創建](qscriptvalue.html)[newObject](qscriptengine.html#newObject)()函數),以一個變體,或替換包含在對象內的變體通過先前建立的[newVariant](qscriptengine.html#newVariant)()函數。 的原型( )_object_將保持不變。 If _object_不是一個對象,這個函數的行為類似于正常[newVariant](qscriptengine.html#newVariant)( ) ,也就是說,它會創建一個新的腳本對象并返回它。 當你想提供一個腳本構造一個C + +類型,此功能非常有用。如果你的構造函數中調用一個`new`表達式([QScriptContext.isCalledAsConstructor](qscriptcontext.html#isCalledAsConstructor)( )返回True ) ,你可以通過[QScriptContext.thisObject](qscriptcontext.html#thisObject)( ) (默認構造腳本對象)這個函數來初始化新的對象。 此功能被引入Qt的4.4 。 **See also** [reportAdditionalMemoryCost](qscriptengine.html#reportAdditionalMemoryCost)( ) 。 ``` QScriptValue QScriptEngine.nullValue (self) ``` [](qscriptvalue.html) [返回](qscriptvalue.html)[QScriptValue](qscriptvalue.html)的原始類型空。 **See also** [undefinedValue](qscriptengine.html#undefinedValue)( ) 。 ``` QScriptEngine.popContext (self) ``` 跳出當前執行上下文,并恢復前一個。該功能必須在配合使用[pushContext](qscriptengine.html#pushContext)( ) 。 **See also** [pushContext](qscriptengine.html#pushContext)( ) 。 ``` int QScriptEngine.processEventsInterval (self) ``` 返回呼叫之間的時間間隔以毫秒為單位[QCoreApplication.processEvents](qcoreapplication.html#processEvents)( )解釋器運行時。 **See also** [setProcessEventsInterval](qscriptengine.html#setProcessEventsInterval)( ) 。 ``` QScriptContext QScriptEngine.pushContext (self) ``` [](qscriptcontext.html) [進入一個新的執行上下文,并返回相關的](qscriptcontext.html)[QScriptContext](qscriptcontext.html)對象。 一旦你與上下文做的,你應該叫[popContext](qscriptengine.html#popContext)( )來恢復舊的上下文。 默認情況下,新的上下文的` this'對象是全局對象。上下文的[callee](qscriptcontext.html#callee)( )將是無效的。 當您要評估的腳本代碼,就好像它是一個函數體,此功能非常有用。您可以使用上下文的[activationObject](qscriptcontext.html#activationObject)( )來初始化局部變量將提供給腳本。例如: ``` [QScriptEngine](qscriptengine.html) engine; [QScriptContext](qscriptcontext.html) *context = engine.pushContext(); context->activationObject().setProperty("myArg", 123); engine.evaluate("var tmp = myArg + 42"); ... engine.popContext(); ``` 在上面的例子中,新的變量“TMP ”,在腳本中定義的將是本地上下文;換句話說,腳本不會對地球環境有任何影響。 萬一棧溢出,則返回0 **See also** [popContext](qscriptengine.html#popContext)( ) 。 ``` QScriptEngine.reportAdditionalMemoryCost (self, int?size) ``` 報告的給予額外的內存消耗_size_,以字節為單位,對垃圾收集器。 這個函數可以調用,以表明一個Qt Script對象都有一個與之關聯的內存不是由Qt的腳本本身的管理。報告的額外成本使得它更可能是垃圾收集器將被觸發。 請注意,如果額外的記憶體與腳本環境之外的對象共享,成本不應該被報導,因為收集了Qt Script對象將不會導致內存被釋放反正。 Negative _size_值將被忽略,即這個功能不能用于報告,額外的內存已經被釋放。 This function was introduced in Qt 4.7. **See also** [collectGarbage](qscriptengine.html#collectGarbage)( ) 。 ``` QScriptEngine.setAgent (self, QScriptEngineAgent?agent) ``` 安裝給定的_agent_在此引擎上。該代理將收到有關腳本執行的各種活動。當你想找出到底是什么引擎這樣做是有用的,例如:何時[evaluate](qscriptengine.html#evaluate)()被調用。代理接口是一樣的調試器和分析器工具的基礎。 該引擎維護的所有權_agent_。 如有調用此函數將取代現有的代理。 此功能被引入Qt的4.4 。 **See also** [agent](qscriptengine.html#agent)( ) 。 ``` QScriptEngine.setDefaultPrototype (self, int?metaTypeId, QScriptValue?prototype) ``` 設置確定了在給定的C + +類的默認原型_metaTypeId_至_prototype_。 默認的原型為類型的值的腳本接口_metaTypeId_當該類型的值從腳本代碼訪問。每當腳本引擎(隱式或顯式地)創建一個[QScriptValue](qscriptvalue.html)從類型的值_metaTypeId_,默認的原型將被設置為[QScriptValue](qscriptvalue.html)的原型。 該_prototype_對象本身可以使用的兩個主要技術之一來建造;最簡單的是子類化[QScriptable](index.htm),它使您能夠通過定義類型的腳本API[QObject](qobject.html)屬性和插槽。另一種可能性是通過調用來創建一個腳本對象[newObject](qscriptengine.html#newObject)( ) ,并填充包裹所需的屬性(如原生函數的對象[newFunction](qscriptengine.html#newFunction)())。 **See also** [defaultPrototype](qscriptengine.html#defaultPrototype)( )[qScriptRegisterMetaType](qscriptengine.html#qScriptRegisterMetaType)( )[QScriptable](index.htm)和[Default Prototypes Example](index.htm)。 ``` QScriptEngine.setGlobalObject (self, QScriptValue?object) ``` 設置要在給定的這臺發動機的全局對象_object_。如果_object_是不是一個有效的腳本對象,這個函數不執行任何操作。 當設置一個自定義的全局對象,你可能要使用[QScriptValueIterator](qscriptvalueiterator.html)復制的標準全局對象的屬性,或者,你可以設置你的自定義對象的內部原型是原始全局對象。 此功能被引入Qt的4.5 。 **See also** [globalObject](qscriptengine.html#globalObject)( ) 。 ``` QScriptEngine.setProcessEventsInterval (self, int?interval) ``` 設置呼叫QCoreApplication.processEvents之間的時間間隔_interval_毫秒。 當解釋器運行時,所有事件處理是在默認情況下阻止。這意味著,例如,該GUI將不被更新和定時器將不被觸發。以允許解釋器在執行期間的事件處理1可指定的處理的時間間隔是一個正的值,表示毫秒的每個時間間隔的秒數[QCoreApplication.processEvents](qcoreapplication.html#processEvents)()被調用。 默認值是-1,這解釋器執行過程中禁用事件處理。 您可以使用[QCoreApplication.postEvent](qcoreapplication.html#postEvent)()發表,在接下來的時間間隔進行自定義處理事件。例如,你可以保持的腳本和呼叫的總運行時間軌跡[abortEvaluation](qscriptengine.html#abortEvaluation)當你發現這個腳本已經運行了很長一段時間沒有完成( ) 。 **See also** [processEventsInterval](qscriptengine.html#processEventsInterval)( ) 。 ``` QScriptValue QScriptEngine.toObject (self, QScriptValue?value) ``` [](qscriptvalue.html) [轉換給定的_value_一個對象,如果有這樣的轉換是可能的,否則返回一個無效的](qscriptvalue.html)[QScriptValue](qscriptvalue.html)。該轉換是根據下面的表執行: | Input Type | Result | | --- | --- | | Undefined | An invalid [QScriptValue](qscriptvalue.html). | | Null | An invalid [QScriptValue](qscriptvalue.html). | | Boolean | A new Boolean object whose internal value is set to the value of the boolean. | | Number | A new Number object whose internal value is set to the value of the number. | | String | A new String object whose internal value is set to the value of the string. | | Object | The result is the object itself (no conversion). | 此功能被引入Qt的4.5 。 **See also** [newObject](qscriptengine.html#newObject)( ) 。 ``` QScriptString QScriptEngine.toStringHandle (self, QString?str) ``` [ 返回表示給定字符串的句柄,_str_。 ](qscriptstring.html) [](qscriptstring.html)[QScriptString](qscriptstring.html)可以用來快速查找屬性和比較屬性名的腳本對象。 此功能被引入Qt的4.4 。 **See also** [QScriptValue.property](qscriptvalue.html#property)( ) 。 ``` QScriptValue QScriptEngine.uncaughtException (self) ``` [](qscriptvalue.html) [返回當前未捕獲的異常,或無效](qscriptvalue.html)[QScriptValue](qscriptvalue.html)如果沒有捕獲的異常。 唯一的例外值通常是一個`Error`對象,在這種情況下,你可以調用toString()的返回值來獲得一個錯誤消息。 **See also** [hasUncaughtException](qscriptengine.html#hasUncaughtException)()和[uncaughtExceptionLineNumber](qscriptengine.html#uncaughtExceptionLineNumber)( ) 。 ``` QStringList QScriptEngine.uncaughtExceptionBacktrace (self) ``` 返回最后一個未捕獲的異常的人類可讀的回溯。 它的形式為`&lt;function-name&gt;()@&lt;file-name&gt;:&lt;line-number&gt;`。 **See also** [uncaughtException](qscriptengine.html#uncaughtException)( ) 。 ``` int QScriptEngine.uncaughtExceptionLineNumber (self) ``` 返回最近發生的未捕獲異常的代碼行數。 行號從1開始的,除非一個不同的基地被指定為第二個參數[evaluate](qscriptengine.html#evaluate)( ) 。 **See also** [hasUncaughtException](qscriptengine.html#hasUncaughtException)( ) 。 ``` QScriptValue QScriptEngine.undefinedValue (self) ``` [](qscriptvalue.html) [返回](qscriptvalue.html)[QScriptValue](qscriptvalue.html)基本類型未定義的。 **See also** [nullValue](qscriptengine.html#nullValue)( ) 。 * * * ## Qt Signal Documentation ``` void signalHandlerException (const QScriptValue&) ``` 這是該信號的默認超載。 當連接到一個信號的腳本功能使這個信號被發射的_exception_。 此功能被引入Qt的4.4 。 **See also** [qScriptConnect](qscriptengine.html#qScriptConnect)( ) 。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看