Spec-Zone.ru › Qt 5.13

Класс QAxScript

Класс QAxScript предоставляет оболочку вокруг кода сценариев. Подробнее...

Заголовок: #include <QAxScript>
qmake: QT += axcontainer
Наследует: QObject
  • Список всех членов, включая унаследованные

Типы публичного доступа

перечисление FunctionFlags { FunctionNames, FunctionSignatures }

Функции публичного доступа

QAxScript(const QString &name, QAxScriptManager *manager)
виртуальный ~QAxScript() override
QVariant call(const QString &function, const QVariant &var1 = QVariant(), const QVariant &var2 = QVariant(), const QVariant &var3 = QVariant(), const QVariant &var4 = QVariant(), const QVariant &var5 = QVariant(), const QVariant &var6 = QVariant(), const QVariant &var7 = QVariant(), const QVariant &var8 = QVariant())
QVariant call(const QString &function, QList<QVariant> &arguments)
QStringList functions(QAxScript::FunctionFlags flags = FunctionNames) const
bool load(const QString &code, const QString &language = QString())
QString scriptCode() const
QAxScriptEngine * scriptEngine() const
QString scriptName() const

Сигналы

void entered()
void error(int code, const QString &description, int sourcePosition, const QString &sourceText)
void finished(int code, const QString &source, const QString &description, const QString &help)
void finished(const QVariant &result)
void finished()
void stateChanged(int state)

Подробное описание

Каждый экземпляр класса QAxScript представляет собой фрагмент кода сценария на определённом языке сценариев. Код загружается в движок сценариев с помощью load(). Функции, объявленные в коде, могут вызываться с помощью call().

Сценарий предоставляет информацию приложению через сигналы. Наиболее важным сигналом является error(). Прямой доступ к QAxScriptEngine предоставляется функцией scriptEngine().

Предупреждение: Этот класс недоступен с компилятором bcc5.5.

См. также QAxScriptEngine, QAxScriptManager, QAxBase и Фреймворк ActiveQt.

Документация типов членов

перечисление QAxScript::FunctionFlags

Это перечисление FunctionFlags описывает форматирование для интроспекции функций.

Константа Значение Описание
QAxScript::FunctionNames 0 Возвращаются только имена функций.
QAxScript::FunctionSignatures 1 Возвращаются функции со спецификациями.

Документация функций членов

QAxScript::QAxScript(const QString &name, QAxScriptManager *manager)

Конструирует объект QAxScript с именем name и регистрирует его в QAxScriptManager manager. Обычно это делает класс QAxScriptManager при загрузке сценария.

Сценарий должен всегда иметь имя. Менеджер необходим, чтобы сценарий мог ссылаться на объекты в приложении. manager получает владение объектом.

[signal] void QAxScript::entered()

Этот сигнал излучается, когда движок сценариев начал выполнение кода.

[signal] void QAxScript::error(int code, const QString &description, int sourcePosition, const QString &sourceText)

Этот сигнал излучается, когда при выполнении сценария произошла ошибка.

code, description, sourcePosition и sourceText содержат информацию об ошибке.

[signal] void QAxScript::finished(int code, const QString &source, const QString &description, const QString &help)

Это перегруженная функция.

code, source, description и help содержат информацию об исключении при завершении сценария.

Примечание: Сигнал finished перегружен в этом классе. Для подключения к этому сигналу с использованием синтаксиса указателя функции Qt предоставляет удобный помощник для получения указателя функции, как показано в этом примере:

connect(axScript, QOverload<int, const QString &, const QString &, const QString &>::of(&QAxScript::finished),
    [=](int code, const QString &source, const QString &description, const QString &help){ /* ... */ });

[signal] void QAxScript::finished(const QVariant &result)

Это перегруженная функция.

result содержит результат сценария. Будет недопустимым QVariant, если сценарий не имеет возвращаемого значения.

Примечание: Сигнал finished перегружен в этом классе. Для подключения к этому сигналу с использованием синтаксиса указателя функции Qt предоставляет удобный помощник для получения указателя функции, как показано в этом примере:

connect(axScript, QOverload<const QVariant &>::of(&QAxScript::finished),
    [=](const QVariant &result){ /* ... */ });

[signal] void QAxScript::finished()

Этот сигнал излучается, когда движок сценариев завершил выполнение кода.

Примечание: Сигнал finished перегружен в этом классе. Для подключения к этому сигналу с использованием синтаксиса указателя функции Qt предоставляет удобный помощник для получения указателя функции, как показано в этом примере:

connect(axScript, QOverload<>::of(&QAxScript::finished),
    [=](){ /* ... */ });

[signal] void QAxScript::stateChanged(int state)

Этот сигнал излучается, когда движок сценариев изменяет состояние. state может принимать любое значение в перечислении QAxScriptEngine::State.

[override virtual] QAxScript::~QAxScript()

Уничтожает объект, освобождая все выделенные ресурсы.

QVariant QAxScript::call(const QString &function, const QVariant &var1 = QVariant(), const QVariant &var2 = QVariant(), const QVariant &var3 = QVariant(), const QVariant &var4 = QVariant(), const QVariant &var5 = QVariant(), const QVariant &var6 = QVariant(), const QVariant &var7 = QVariant(), const QVariant &var8 = QVariant())

Вызывает функцию function, передавая параметры var1, var1, var2, var3, var4, var5, var6, var7 и var8 в качестве аргументов и возвращает значение, возвращённое функцией, или недопустимый QVariant, если функция не возвращает значение или вызов функции завершился неудачно.

См. QAxScriptManager::call() для получения дополнительной информации о том, как вызывать функции сценария.

QVariant QAxScript::call(const QString &function, QList<QVariant> &arguments)

Это перегруженный метод.

Вызывает функцию function, передавая параметры arguments, и возвращает результат. Возвращается, когда выполнение скрипта завершено.

См. QAxScriptManager::call() для получения дополнительной информации о вызове функций скрипта.

QStringList QAxScript::functions(QAxScript::FunctionFlags flags = FunctionNames) const

Возвращает список всех функций в этом скрипте, если соответствующий движок скриптов поддерживает интроспекцию; в противном случае возвращает пустой список. Функции предоставляются либо с полными прототипами, либо только в виде имён, в зависимости от значения flags.

См. также QAxScriptEngine::hasIntrospection().

bool QAxScript::load(const QString &code, const QString &language = QString())

Загружает исходный код скрипта code, написанный на языке language, в движок скриптов. Возвращает true, если code был успешно загружен в движок скриптов; в противном случае возвращает false.

Если language пустое (по умолчанию), оно будет определено эвристически. Если code содержит строку End Sub, она будет интерпретирована как VBScript, иначе как JScript. Дополнительные языки сценариев могут быть зарегистрированы с помощью QAxScriptManager::registerEngine().

Эта функция может быть вызвана только один раз для каждого объекта QAxScript, что выполняется автоматически при использовании QAxScriptManager::load().

QString QAxScript::scriptCode() const

Возвращает код скрипта или пустую строку, если код ещё не загружен.

См. также load().

QAxScriptEngine *QAxScript::scriptEngine() const

Возвращает указатель на движок скриптов.

Вы можете использовать возвращённый объект для подключения сигналов к функциям скрипта или для прямого доступа к движку скриптов.

QString QAxScript::scriptName() const

Возвращает имя скрипта.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qaxscript.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API