Spec-Zone.ru › Qt 5.14

Класс QAxScript

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

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

Типы

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

Публичные функции

QAxScript(const QString &name, QAxScriptManager *manager)
virtual ~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 Framework.

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

Перечисление 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.14/qaxscript.html

Spec-Zone.ru

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