<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # QScriptClass Class Reference ## [[QtScript](index.htm) module] 該QScriptClass類提供用于定義(一類)的Qt Script對象的自定義行為的接口。[More...](#details) ### Types * `enum Extension { Callable, HasInstance }` * `enum QueryFlag { HandlesReadAccess, HandlesWriteAccess }` * `class **[QueryFlags](index.htm)**` ### Methods * `__init__ (self, QScriptEngine?engine)` * `QScriptEngine engine (self)` * `QVariant extension (self, Extension?extension, QVariant?argument?=?QVariant())` * `QString name (self)` * `QScriptClassPropertyIterator newIterator (self, QScriptValue?object)` * `QScriptValue property (self, QScriptValue?object, QScriptString?name, int?id)` * `QScriptValue.PropertyFlags propertyFlags (self, QScriptValue?object, QScriptString?name, int?id)` * `QScriptValue prototype (self)` * `(QueryFlags, int?id) queryProperty (self, QScriptValue?object, QScriptString?name, QueryFlags?flags)` * `setProperty (self, QScriptValue?object, QScriptString?name, int?id, QScriptValue?value)` * `bool supportsExtension (self, Extension?extension)` * * * ## Detailed Description 該QScriptClass類提供用于定義(一類)的Qt Script對象的自定義行為的接口。 該QScriptClass類定義用于處理交互的各個方面與類相關的Qt的腳本對象的接口。這些對象通過調用創建[QScriptEngine.newObject](qscriptengine.html#newObject)( ) ,傳遞一個指針QScriptClass作為參數。 通過子類QScriptClass ,您可以精確地定義了如何訪問使用你的類的對象的屬性進行處理。這使得屬性的完全動態處理,例如:它比功能更強大[QScriptEngine.newQObject](qscriptengine.html#newQObject)( ) 。例如,您可以使用QScriptClass實現數組類型的對象(即處理的對象`length`屬性和屬性的名稱是有效的數組索引,以特殊的方式) ,或者為了實現一個“活” (運行時定義的)的代理到底層對象。 如果你只需要處理訪問一組已知在創建一個對象的時間屬性(即“半靜態” ) ,你可能會考慮使用[QScriptValue.setProperty](qscriptvalue.html#setProperty)( )來定義的getter / setter函數的相關性,而不是繼承QScriptClass 。 重新實現[queryProperty](qscriptclass.html#queryProperty)()來指定哪些屬性在自定義的方式通過你的腳本類處理(即應**delegated**到QScriptClass ) ,以及哪些屬性應該就像正常的Qt Script對象的屬性進行處理。 重新實現[property](qscriptclass.html#property)()和[setProperty](qscriptclass.html#setProperty)( )來執行實際的訪問(讀或寫)到您的類處理性能。此外,您可以重新實現[propertyFlags](qscriptclass.html#propertyFlags)()來指定自定義標記為您的物業。 重新實現[newIterator](qscriptclass.html#newIterator)( )提供一個迭代器為自定義類的對象。這僅僅是必要的,如果你的類的對象可以有你想要當一個對象被一起用來報告自定義屬性[QScriptValueIterator](qscriptvalueiterator.html)類,或者當一個對象被用在換在枚舉聲明中的腳本。 當實現對象的自定義類,通常使用[QScriptValue.setData](qscriptvalue.html#setData)( )來存儲特定于實例的數據作為對象初始化的一部分,該數據將無法從腳本直接訪問,但您可以訪問它,例如在您的重新實現[property](qscriptclass.html#property)()和[setProperty](qscriptclass.html#setProperty)( ) (通過調用[QScriptValue.data](qscriptvalue.html#data)())來執行自定義處理。 重新實現[prototype](qscriptclass.html#prototype)()為您的腳本類提供自定義的原型對象。 重新實現[supportsExtension](qscriptclass.html#supportsExtension)()和[extension](qscriptclass.html#extension)( )如果你的自定義腳本類支持一個由擴展枚舉指定的擴展名或更多。 * * * ## Type Documentation ``` QScriptClass.Extension ``` 這個枚舉指定可能的擴展到[QScriptClass](qscriptclass.html)。 | Constant | Value | Description | | --- | --- | --- | | `QScriptClass.Callable` | `0` | 這個類的實例可以被稱為功能。 | | `QScriptClass.HasInstance` | `1` | 此類的實例實現[ [ HasInstance ] 。 | **See also** [extension](qscriptclass.html#extension)( ) 。 ``` QScriptClass.QueryFlag ``` 這個枚舉變量描述了用于查詢標志[QScriptClass](qscriptclass.html)關于如何獲得一個屬性的處理方式。 | Constant | Value | Description | | --- | --- | --- | | `QScriptClass.HandlesReadAccess` | `0x01` | 該[QScriptClass](qscriptclass.html)手柄讀取訪問這個屬性。 | | `QScriptClass.HandlesWriteAccess` | `0x02` | 該[QScriptClass](qscriptclass.html)處理寫訪問這個屬性。 | 該QueryFlags類型是一個typedef為[QFlags](index.htm)\u003cQueryFlag\u003e 。它存儲QueryFlag值的或組合。 **See also** [queryProperty](qscriptclass.html#queryProperty)( ) 。 * * * ## Method Documentation ``` QScriptClass.__init__ (self, QScriptEngine?engine) ``` 構造一個[QScriptClass](qscriptclass.html)對象在給定的被使用_engine_。 發動機不走的所有權[QScriptClass](qscriptclass.html)對象。 ``` QScriptEngine QScriptClass.engine (self) ``` [](qscriptengine.html) [返回發動機,這](qscriptengine.html)[QScriptClass](qscriptclass.html)相關聯。 ``` QVariant QScriptClass.extension (self, Extension?extension, QVariant?argument?=?QVariant()) ``` 這個虛函數可以在重新實現[QScriptClass](qscriptclass.html)子類以提供擴展的支持。可選的_argument_可以作為輸入提供給_extension_;結果必須在一個形式被返回[QVariant](qvariant.html)。您可以致電[supportsExtension](qscriptclass.html#supportsExtension)( )來檢查一個擴展是支持的[QScriptClass](qscriptclass.html)。默認情況下,沒有擴展名的支持,這個函數返回一個無效[QVariant](qvariant.html)。 如果實現的可贖回擴展, Qt的腳本會調用這個函數時,你的類的一個實例作為函數調用(例如,從一個腳本或使用[QScriptValue.call](qscriptvalue.html#call)())。該_argument_將包含一個指針,指向[QScriptContext](qscriptcontext.html)表示函數調用,你應該返回一個[QVariant](qvariant.html)保存函數調用的結果。在下面的示例中的參數傳遞給腳本函數的總和相加并返回: ``` if (extension == Callable) { [QScriptContext](qscriptcontext.html) *context = qvariant_cast<[QScriptContext](qscriptcontext.html)*>(argument); [QScriptEngine](qscriptengine.html) *engine = context->engine(); double sum = 0; for (int i = 0; i < context->argumentCount(); ++i) sum += context->argument(i).toNumber(); return sum; } ``` 如果實現[HasInstance](qscriptclass.html#Extension-enum)擴展, Qt的腳本會調用這個函數作為評估的一部分,`instanceof`操作者,如在ECMA-262第11.8.6說明。該_argument_是一個包含兩個項目一個QScriptValueList :第一項是對象[HasInstance](qscriptclass.html#Extension-enum)被應用到(你的類的一個實例) ,第二項可以是任何值。擴展( )應該返回True ,如果該值代表行為的對象,否則返回False。 **See also** [supportsExtension](qscriptclass.html#supportsExtension)( ) 。 ``` QString QScriptClass.name (self) ``` 返回腳本類的名稱。 Qt的腳本使用此名稱來生成對象的情況下,你不提供一個toString函數的默認字符串表示形式。 默認實現返回一個空字符串。 ``` QScriptClassPropertyIterator QScriptClass.newIterator (self, QScriptValue?object) ``` [ 返回一個迭代器遍歷給定的自定義屬性_object_。 默認實現返回0 ,這意味著沒有任何自定義屬性來遍歷。 ](qscriptclasspropertyiterator.html) [重新實現這個功能,如果你的腳本類的對象可以有一個或多個自定義屬性(例如那些報導被處理](qscriptclasspropertyiterator.html)[queryProperty](qscriptclass.html#queryProperty)( ) ),您要當一個對象的屬性列舉(例如,通過一個for in語句在腳本中)出現。 Qt的腳本需要新的迭代器對象的所有權。 **See also** [QScriptValueIterator](qscriptvalueiterator.html)。 ``` QScriptValue QScriptClass.property (self, QScriptValue?object, QScriptString?name, int?id) ``` [ 用給定的返回屬性的值_name_的給定_object_。 ](qscriptvalue.html) [該_id_如果你分配一個值給它的參數是唯一有用的](qscriptvalue.html)[queryProperty](qscriptclass.html#queryProperty)( ) 。 默認實現不執行任何操作,并返回一個無效的[QScriptValue](qscriptvalue.html)。 **See also** [setProperty](qscriptclass.html#setProperty)()和[propertyFlags](qscriptclass.html#propertyFlags)( ) 。 ``` QScriptValue.PropertyFlags QScriptClass.propertyFlags (self, QScriptValue?object, QScriptString?name, int?id) ``` [ 返回屬性的標志與給定_name_的給定_object_。 ](index.htm) [該_id_如果你分配一個值給它的參數是唯一有用的](index.htm)[queryProperty](qscriptclass.html#queryProperty)( ) 。 默認實現返回0 。 **See also** [property](qscriptclass.html#property)( ) 。 ``` QScriptValue QScriptClass.prototype (self) ``` [](qscriptvalue.html) [返回要使用的對象作為這個類的新實例的原型(與創建](qscriptvalue.html)[QScriptEngine.newObject](qscriptengine.html#newObject)())。 默認實現返回一個無效的[QScriptValue](qscriptvalue.html)的,這意味著標準的對象的原型將被使用。重新實現此功能提供您自己的自定義原型。 通常你初始化你的原型對象在類的構造函數,那么它在這個函數中返回。 請參閱“利用基于原型的繼承”一節[QtScript](index.htm)文檔以獲取有關如何原型使用的詳細信息。 ``` (QueryFlags, int?id) QScriptClass.queryProperty (self, QScriptValue?object, QScriptString?name, QueryFlags?flags) ``` 查詢如何用給定的訪問屬性這個腳本類_name_的給定_object_應該如何處理。給定_flags_指定感興趣的方面。這個函數應該返回的一個子集_flags_來表示,其中屬性訪問方面應該由腳本類被進一步處理。 例如,如果_flags_包含[HandlesReadAccess](qscriptclass.html#QueryFlag-enum),你想你的類來處理該物業的讀數(通過[property](qscriptclass.html#property)( )函數) ,返回的標志應包括:[HandlesReadAccess](qscriptclass.html#QueryFlag-enum)。如果返回的標志不包含[HandlesReadAccess](qscriptclass.html#QueryFlag-enum),該物業將作為一個正常的腳本對象屬性來處理。 您可以選擇使用_id_參數存儲將隨后被傳遞給函數,如值[property](qscriptclass.html#property)()和[setProperty](qscriptclass.html#setProperty)( ) 。 此函數的默認實現返回0 。 注意:如果給定的屬性是不是已經對對象的一個屬性,此功能時,才調用。例如,假設你做廣告,你要處理的讀訪問屬性`foo`,但不能寫入權限,如果`foo`然后被分配一個值,它會成為一個正常的腳本對象的屬性,隨后你將不再就到讀訪問查詢`foo`。 **See also** [property](qscriptclass.html#property)( ) 。 ``` QScriptClass.setProperty (self, QScriptValue?object, QScriptString?name, int?id, QScriptValue?value) ``` 設置該屬性與給定_name_的給定_object_為給定的_value_。 該_id_如果你分配一個值給它的參數是唯一有用的[queryProperty](qscriptclass.html#queryProperty)( ) 。 默認實現不執行任何操作。 無效的_value_表示請求移除該屬性。 **See also** [property](qscriptclass.html#property)( ) 。 ``` bool QScriptClass.supportsExtension (self, Extension?extension) ``` 返回True如果[QScriptClass](qscriptclass.html)支持給定_extension_否則,則返回False。默認情況下,沒有擴展名的支持。 重新實現這個功能,可顯示哪些擴展您的自定義類的支持。 **See also** [extension](qscriptclass.html#extension)( ) 。
                  <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>

                              哎呀哎呀视频在线观看