Класс QAxScriptManager
Класс QAxScriptManager обеспечивает мост между объектами приложения и скриптовым кодом. Подробнее...
| Заголовок: | #include <QAxScriptManager> |
| qmake: | QT += axcontainer |
| Наследует: | QObject |
Открытые функции
| QAxScriptManager(QObject *parent = Q_NULLPTR) | |
| ~QAxScriptManager() | |
| 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() |
- 11 статических открытых членов, унаследованных от 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 = Q_NULLPTR)
Создает объект QAxScriptManager. parent передаётся конструктору QObject.
Обычно создается один QAxScriptManager для каждого документа в приложении.
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() вместо этого.
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/archives/qt-5.6/qaxscriptmanager.html