diff options
Diffstat (limited to 'sources/pyside2/doc/codesnippets/doc/src/snippets/code/src_script_qscriptengine.cpp')
-rw-r--r-- | sources/pyside2/doc/codesnippets/doc/src/snippets/code/src_script_qscriptengine.cpp | 320 |
1 files changed, 0 insertions, 320 deletions
diff --git a/sources/pyside2/doc/codesnippets/doc/src/snippets/code/src_script_qscriptengine.cpp b/sources/pyside2/doc/codesnippets/doc/src/snippets/code/src_script_qscriptengine.cpp deleted file mode 100644 index 4005e2c2b..000000000 --- a/sources/pyside2/doc/codesnippets/doc/src/snippets/code/src_script_qscriptengine.cpp +++ /dev/null @@ -1,320 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the documentation of Qt for Python. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//! [0] -myEngine = QScriptEngine() -three = myEngine.evaluate("1 + 2") -//! [0] - - -//! [1] -fun = myEngine.evaluate("function(a, b) { return a + b }"); -args = QScriptValueList() -args << 1 << 2 -threeAgain = fun.call(QScriptValue(), args) -//! [1] - - -//! [2] -fileName = "helloworld.qs" -scriptFile = QFile(fileName) -if !scriptFile.open(QIODevice.ReadOnly): - # handle error -stream = QTextStream(scriptFile) -contents = stream.readAll() -scriptFile.close() -myEngine.evaluate(contents, fileName) -//! [2] - - -//! [3] -myEngine.globalObject().setProperty("myNumber", 123) -... -myNumberPlusOne = myEngine.evaluate("myNumber + 1") -//! [3] - - -//! [4] -result = myEngine.evaluate(...) -if myEngine.hasUncaughtException(): - line = myEngine.uncaughtExceptionLineNumber() - print "uncaught exception at line", line, ":", result.toString() -//! [4] - - -//! [5] -button = QPushButton() -QScriptValue scriptButton = myEngine.QObject(button) -myEngine.globalObject().setProperty("button", scriptButton) - -myEngine.evaluate("button.checkable = True") - -print scriptButton.property("checkable").toBoolean() -scriptButton.property("show").call() # call the show() slot -//! [5] - - -//! [6] -def myAdd(context, engine): - a = context.argument(0) - b = context.argument(1) - return a.toNumber() + b.toNumber() -//! [6] - - -//! [7] -fun = myEngine.Function(myAdd) -myEngine.globalObject().setProperty("myAdd", fun) -//! [7] - - -//! [8] -result = myEngine.evaluate("myAdd(myNumber, 1)") -//! [8] - - -//! [9] -def Foo(context, engine): - if context.calledAsConstructor(): - # initialize the object - context.selfObject().setProperty("bar", ...) - # ... - # return a non-object value to indicate that the - # selfObject() should be the result of the " Foo()" expression - return engine.undefinedValue() - else: - # not called as " Foo()", just "Foo()" - # create our own object and return that one - object = engine.Object() - object.setPrototype(context.callee().property("prototype")) - object.setProperty("baz", ...) - return object -... - -fooProto = engine.Object() -fooProto.setProperty("whatever", ...) -engine.globalObject().setProperty("Foo", engine->Function(Foo, fooProto)) -//! [9] - - -//! [10] -class Bar: - ... - -def constructBar(context, engine): - bar = Bar() - # initialize from arguments in context, if desired - ... - return engine.toScriptValue(bar) - -class BarPrototype(QObject, QScriptable): -# provide the scriptable interface of self type using slots and properties -... - -... - -# create and register the Bar prototype and constructor in the engine -barPrototypeObject = BarPrototype(...) -barProto = engine.QObject(barPrototypeObject) -engine.setDefaultPrototype(qMetaTypeId(Bar), barProto) -barCtor = engine.Function(constructBar, barProto) -engine.globalObject().setProperty("Bar", barCtor) -//! [10] - - -//! [11] -def getSetFoo(context,engine): - callee = context.callee() - if context.argumentCount() == 1: # writing? - callee.setProperty("value", context.argument(0)) - return callee.property("value") -} - -.... - -object = engine.Object() -object.setProperty("foo", engine.Function(getSetFoo), - QScriptValue.PropertyGetter | QScriptValue::PropertySetter) -//! [11] - - -//! [12] -object = engine.Object() -object.setProperty("foo", engine.Function(getFoo), QScriptValue.PropertyGetter) -object.setProperty("foo", engine.Function(setFoo), QScriptValue.PropertySetter) -//! [12] - - -//! [13] -Q_SCRIPT_DECLARE_QMETAOBJECT(QLineEdit, QWidget*) - -... - -lineEditClass = engine.scriptValueFromQMetaObject(QLineEdit) -engine.globalObject().setProperty("QLineEdit", lineEditClass) -//! [13] - - -//! [14] -if hello && world: - print("hello world") -//! [14] - - -//! [15] -if hello && -//! [15] - - -//! [16] -0 = 0 -//! [16] - - -//! [17] -./test.js -//! [17] - - -//! [18] -foo["bar"] -//! [18] - - -//! [19] -engine = QScriptEngine() -context = engine.pushContext() -context.activationObject().setProperty("myArg", 123) -engine.evaluate("var tmp = myArg + 42") -... -engine.popContext() -//! [19] - - -//! [20] -class MyStruct: - x = 0 - y = 0 -//! [20] - - -//! [21] -Q_DECLARE_METATYPE(MyStruct) -//! [21] - - -//! [22] -def toScriptValue(engine, s): - obj = engine.Object() - obj.setProperty("x", s.x) - obj.setProperty("y", s.y) - return obj - -def fromScriptValue(obj, s): - s.x = obj.property("x").toInt32() - s.y = obj.property("y").toInt32() -//! [22] - - -//! [23] -qScriptRegisterMetaType(engine, toScriptValue, fromScriptValue) -//! [23] - - -//! [24] -s = context.argument(0) -... -s2 = MyStruct() -s2.x = s.x + 10 -s2.y = s.y + 20 -v = engine.toScriptValue(s2) -//! [24] - - -//! [25] -def createMyStruct(cx, engine): - s = MyStruct() - s.x = 123 - s.y = 456 - return engine.toScriptValue(s) -... - -ctor = engine.Function(createMyStruct) -engine.globalObject().setProperty("MyStruct", ctor) -//! [25] - - -//! [26] -Q_DECLARE_METATYPE(QVector<int>) - -... - -qScriptRegisterSequenceMetaType<QVector<int> >(engine) -... -v = engine.evaluate("[5, 1, 3, 2]") -v.sort() -a = engine.toScriptValue(v) -print a.toString() # outputs "[1, 2, 3, 5]" -//! [26] - -//! [27] -def mySpecialQObjectConstructor(context, engine): - parent = context.argument(0).toQObject() - object = QObject(parent) - return engine.QObject(object, QScriptEngine.ScriptOwnership) - -... - -ctor = engine.Function(mySpecialQObjectConstructor) -metaObject = engine.QMetaObject(QObject.staticMetaObject, ctor) -engine.globalObject().setProperty("QObject", metaObject) - -result = engine.evaluate(" QObject()") -//! [27] |