Класс QAxScript
Класс QAxScript предоставляет оболочку для скриптового кода. Подробнее...
| Заголовок: | #include <QAxScript> |
| CMake: | find_package(Qt6 COMPONENTS AxContainer REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::AxContainer) |
| qmake: | QT += axcontainer |
| Наследуется от: | QObject |
Типы public
| Перечисление | FunctionFlags { FunctionNames, FunctionSignatures } |
Функции public
| 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-6.1/qaxscript.html