Spec-Zone.ru › Qt 5.12

Класс QAxScriptManager

Класс QAxScriptManager обеспечивает мост между объектами приложения и скриптовым кодом. Подробнее...

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

Открытые функции

QAxScriptManager(QObject *parent = nullptr)
virtual ~QAxScriptManager() override
void addObject(QAxBase *object)
void addObject(QObject *object)
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 = QAxScript::FunctionNames) const
QAxScript * load(const QString &code, const QString &name, const QString &language)
QAxScript * load(const QString &file, const QString &name)
QAxScript * script(const QString &name) const
QStringList scriptNames() const
  • 31 открытая функция, унаследованная от QObject

Сигналы

void error(QAxScript *script, int code, const QString &description, int sourcePosition, const QString &sourceText)
  • 2 сигнала, унаследованных от QObject

Статические открытые члены

bool registerEngine(const QString &name, const QString &extension, const QString &code = QString())
QString scriptFileFilter()
const QMetaObject staticMetaObject
  • 9 статических открытых членов, унаследованных от QObject

Дополнительные унаследованные члены

  • 1 свойство, унаследованное от QObject
  • 1 открытый слот, унаследованный от QObject
  • 9 защищенные функции, унаследованные от QObject

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

Класс QAxScriptManager обеспечивает мост между объектами приложения и скриптовым кодом.

Класс QAxScriptManager выступает в качестве моста между объектами COM, встроенными в приложение Qt через QAxObject или QAxWidget, и скриптовыми языками, доступными через технологии Windows Script, обычно JScript и VBScript.

Создайте один экземпляр QAxScriptManager для каждого отдельного документа в вашем приложении и добавьте объекты COM, к которым скрипты должны получить доступ, с помощью addObject(). Затем загрузите скриптовые источники с помощью load() и вызывайте функции с помощью call().

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

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

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

QAxScriptManager::QAxScriptManager(QObject *parent = nullptr)

Создаёт объект QAxScriptManager. parent передаётся конструктору QObject.

Обычно для каждого документа в приложении создаётся один экземпляр QAxScriptManager.

[override virtual] QAxScriptManager::~QAxScriptManager()

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

void QAxScriptManager::addObject(QAxBase *object)

Добавляет object в менеджер. Скрипты, управляемые этим менеджером, могут получить доступ к объекту по имени объекта в свойстве objectName.

Все необходимые объекты должны быть добавлены перед загрузкой каких-либо скриптов.

void QAxScriptManager::addObject(QObject *object)

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

Добавляет оболочку COM для object в менеджер. object должен быть представлен как COM-объект, используя возможности модуля QAxServer. Приложения, использующие эту функцию, должны ссылаться на библиотеку qaxserver.

QVariant QAxScriptManager::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, если функция не возвращает значения или вызов функции завершился ошибкой. Вызов возвращается, когда завершается выполнение скрипта.

В большинстве скриптовых движков поддерживается только тип параметра "const QVariant&", например, для вызова функции JavaScript

function setNumber(number)
{
    n = number;
}

используйте

QValueList args;
args << 5;
script->call("setNumber(const QVariant&)", args);

Как и с dynamicCall, параметры можно непосредственно встроить в строку функции.

script->call("setNumber(5)");

Однако это медленнее.

Функции, предоставляемые скриптовыми движками, которые не поддерживают интроспекцию, недоступны и должны вызываться непосредственно с помощью QAxScript::call() на соответствующем объекте script.

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

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

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

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

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

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

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

Предупреждение: Не удаляйте script в слоте, подключённом к этому сигналу. Используйте deleteLater() вместо этого.

END_OF_DOCUMENT_MARKER

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

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

QAxScript *QAxScriptManager::load(const QString &code, const QString &name, const QString &language)

Загружает исходный код сценария code с использованием движка сценариев для языка language. К сценарию впоследствии можно обратиться по его имени name, которое не должно быть пустым.

Функция возвращает указатель на сценарий для данного code, если code был загружен успешно; в противном случае возвращает 0.

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

Вы должны добавить все необходимые объекты (используя addObject()) до загрузки любых сценариев. Если code объявляет функцию, которая уже доступна (независимо от языка), первая функция перегружается и больше не может быть вызвана через call(); но она по-прежнему будет доступна, вызвав её через script напрямую.

См. также addObject(), scriptNames(), и functions().

QAxScript *QAxScriptManager::load(const QString &file, const QString &name)

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

Загружает исходный код из файла file. К сценарию впоследствии можно обратиться по его имени name, которое не должно быть пустым.

Функция возвращает указатель на движок сценариев для кода в file, если file был загружен успешно; в противном случае возвращает 0.

Используемый движок сценариев определяется по расширению файла. По умолчанию файлы с расширением «.js» интерпретируются как файлы JScript, а файлы с расширениями «.vbs» и «.dsm» — как VBScript. Дополнительные движки сценариев можно зарегистрировать с помощью registerEngine().

[static] bool QAxScriptManager::registerEngine(const QString &name, const QString &extension, const QString &code = QString())

Регистрирует движок сценариев с именем name и возвращает true, если движок найден; в противном случае ничего не делает и возвращает false.

Движок сценариев будет использоваться при загрузке файлов с заданным расширением extension или при загрузке исходного кода, содержащего строку code.

QAxScript *QAxScriptManager::script(const QString &name) const

Возвращает сценарий с именем name.

Вы можете использовать возвращенный указатель для вызова функций напрямую через QAxScript::call(), для прямого доступа к движку сценариев или для удаления и, следовательно, выгрузки сценария.

[static] QString QAxScriptManager::scriptFileFilter()

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

QStringList QAxScriptManager::scriptNames() const

Возвращает список имён всех сценариев.

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

Spec-Zone.ru

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