QAxScript Class

QAxScript 클래스는 스크립트 코드에 대한 래퍼를 제공합니다. 더 보기...

Header: #include <QAxScript>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
상속합니다: QObject

공용 유형

enum 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()
void finished(const QVariant &result)
void finished(int code, const QString &source, const QString &description, const QString &help)
void stateChanged(int state)

상세 설명

QAxScript 클래스의 모든 인스턴스는 특정 스크립팅 언어로 된 스크립팅 코드 조각을 나타냅니다. 코드는 load()를 사용하여 스크립트 엔진에 로드됩니다. 코드에 선언된 함수는 call()를 사용하여 호출할 수 있습니다.

스크립트는 scriptEngine() 신호를 통해 애플리케이션에 피드백을 제공합니다. 가장 중요한 신호는 error() 신호입니다. QAxScriptEngine 에 대한 직접 액세스는 scriptEngine() 함수를 통해 제공됩니다.

경고: 이 클래스는 bcc5.5 컴파일러에서 사용할 수 없습니다.

QAxScriptEngine, QAxScriptManager, QAxBase, ActiveQt 프레임워크도참조하세요 .

멤버 유형 문서

enum QAxScript::FunctionFlags

이 FunctionFlags 열거형은 함수 인트로스펙션을 위한 서식을 설명합니다.

Constant설명
QAxScript::FunctionNames0함수 이름만 반환됩니다.
QAxScript::FunctionSignatures1서명이 있는 함수를 반환합니다.

멤버 함수 문서

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

name 라는 QAxScript 객체를 생성하고 QAxScriptManager manager 에 등록합니다. 이 작업은 일반적으로 QAxScriptManager 클래스가 loading a script.

스크립트에는 항상 이름이 있어야 합니다. 스크립트 코드가 애플리케이션의 객체를 참조할 수 있도록 하려면 관리자가 필요합니다. manager 은 객체의 소유권을 갖습니다.

[override virtual noexcept] 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())

var1, var1, var2, var3, var4, var5, var6, var7, var8 를 인자로 전달하여 function 를 호출하고 함수가 반환하는 값을 반환하거나 함수가 값을 반환하지 않거나 함수 호출이 실패한 경우 잘못된 QVariant 을 반환합니다.

스크립트 함수를 호출하는 방법에 대한 자세한 내용은 QAxScriptManager::call()를 참조하세요.

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

이 함수는 오버로드된 함수입니다.

arguments 을 매개변수로 전달하여 function 을 호출하고 결과를 반환합니다. 스크립트 실행이 완료되면 반환합니다.

스크립트 함수를 호출하는 방법에 대한 자세한 내용은 QAxScriptManager::call()를 참조하세요.

[signal] void QAxScript::entered()

이 신호는 스크립트 엔진이 코드 실행을 시작했을 때 발생합니다.

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

이 신호는 스크립트를 실행하는 동안 실행 오류가 발생했을 때 발생합니다.

code, description, sourcePositionsourceText 에는 실행 오류에 대한 정보가 포함되어 있습니다.

[signal] void QAxScript::finished()

이 신호는 스크립트 엔진이 코드 실행을 완료했을 때 발생합니다.

참고: 이 클래스에서는 완료 신호가 오버로드됩니다. 함수 포인터 구문을 사용하여 이 신호에 연결하려면 이 예제와 같이 함수 포인터를 얻기 위한 편리한 헬퍼를 Qt에서 제공합니다:

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

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

이것은 과부하된 함수입니다.

result 스크립트의 결과를 포함합니다. 스크립트에 반환 값이 없는 경우 잘못된 QVariant 이 됩니다.

참고: 신호 완료는 이 클래스에서 오버로드됩니다. 함수 포인터 구문을 사용하여 이 신호에 연결하려면 이 예제와 같이 함수 포인터를 얻기 위한 편리한 헬퍼를 Qt에서 제공합니다:

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

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

이 함수는 과부하된 함수입니다.

code, source, descriptionhelp 에는 스크립트 종료 시 예외 정보가 포함되어 있습니다.

참고: 이 클래스에서 신호 완료는 오버로드되었습니다. 함수 포인터 구문을 사용하여 이 신호에 연결하려면 이 예제와 같이 함수 포인터를 얻기 위한 편리한 헬퍼를 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){ /* ... */ });

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

해당 스크립트 엔진이 인트로스펙션을 지원하는 경우 이 스크립트의 모든 함수 목록을 반환하고, 그렇지 않으면 빈 목록을 반환합니다. 함수는 flags 의 값에 따라 전체 프로토타입과 함께 제공되거나 이름으로만 제공됩니다.

QAxScriptEngine::hasIntrospection()도 참조하세요 .

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

language 언어로 작성된 스크립트 소스 code 를 스크립트 엔진에 로드합니다. code 이 스크립트 엔진에 성공적으로 입력되면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.

language 이 비어 있으면(기본값) 휴리스틱으로 결정됩니다. codeEnd Sub 문자열이 포함되어 있으면 VBScript로 해석되고, 그렇지 않으면 JScript로 해석됩니다. QAxScriptManager::registerEngine ()를 사용하여 추가 스크립팅 언어를 등록할 수 있습니다.

이 함수는 각 QAxScript 객체에 대해 한 번만 호출할 수 있으며 QAxScriptManager::load() 사용 시 자동으로 수행됩니다.

QString QAxScript::scriptCode() const

스크립트의 코드를 반환하거나 아직 코드가 로드되지 않은 경우 널 문자열을 반환합니다.

load()도 참조하세요 .

QAxScriptEngine *QAxScript::scriptEngine() const

스크립트 엔진에 대한 포인터를 반환합니다.

반환된 객체를 사용하여 신호를 스크립트 함수에 연결하거나 스크립트 엔진에 직접 액세스할 수 있습니다.

QString QAxScript::scriptName() const

스크립트의 이름을 반환합니다.

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

이 신호는 스크립트 엔진이 상태를 변경할 때 발생합니다. state QAxScriptEngine::State 열거형의 모든 값을 사용할 수 있습니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.