이 페이지에서

QAxScript Class

QAxScript 클래스는 스크립트 코드를 감싸는 래퍼 기능을 제공합니다. 더 보기...

헤더: #include <qaxscript.h>
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()` 신호입니다. ` scriptEngine()` 함수를 통해 ` QAxScriptEngine `에 직접 액세스할 수 있습니다.

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

QAxScriptEngine, QAxScriptManager, QAxBase 및 ActiveQt Framework도 참조하십시오 .

멤버 유형 문서

enum QAxScript::FunctionFlags

이 FunctionFlags 열거형은 함수 내부 구조 조사에 사용되는 서식 설정을 설명합니다.

상수값설명
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())

function 를 호출하여 var1, var1, var2, var3, var4, var5, var6, var7 및 var8 를 인수로 전달하고, 함수가 반환한 값을 반환하거나, 함수가 값을 반환하지 않거나 함수 호출에 실패한 경우 유효하지 않은 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, sourcePosition 및 sourceText 에는 실행 오류에 대한 정보가 포함되어 있습니다.

[signal] void QAxScript::finished()

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

참고: 이 신호는 오버로드되어 있습니다. 이 신호에 연결하려면:

// Connect using qOverload:
connect(axScript, qOverload<>(&QAxScript::finished),
        receiver, &ReceiverClass::slot);

// Or using a lambda:
connect(axScript, qOverload<>(&QAxScript::finished),
        this, []() { /* handle finished */ });
더 많은 예제와 방법에 대해서는 오버로드된 신호에 연결하기를 참조하십시오.

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

result 스크립트의 결과를 포함합니다. 스크립트에 반환 값이 없는 경우, 이는 유효하지 않은 QVariant 가 됩니다.

참고: 이 신호는 오버로드되어 있습니다. 이 신호에 연결하려면:

// Connect using qOverload:
connect(axScript, qOverload(&QAxScript::finished),
        receiver, &ReceiverClass::slot);

// Or using a lambda:
connect(axScript, qOverload(&QAxScript::finished),
        this, [](const QVariant &result) { /* handle finished */ });
더 많은 예제와 방법에 대해서는 오버로드된 신호에 연결하기를 참조하십시오.

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

code, source, description 및 help 에는 스크립트가 종료되었을 때의 예외 정보가 포함되어 있습니다.

참고: 이 신호는 오버로드되어 있습니다. 이 신호에 연결하려면:

// Connect using qOverload:
connect(axScript, qOverload(&QAxScript::finished),
        receiver, &ReceiverClass::slot);

// Or using a lambda:
connect(axScript, qOverload(&QAxScript::finished),
        this, [](int code, const QString &source, const QString &description, const QString &help) { /* handle finished */ });
더 많은 예제와 접근 방식에 대해서는 오버로드된 신호에 연결하기를 참조하십시오.

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

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

QAxScriptEngine::hasIntrospection()도 참조하십시오 .

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

language 언어로 작성된 스크립트 소스 code 를 스크립트 엔진에 불러옵니다. code 가 스크립트 엔진에 성공적으로 입력된 경우 true를 반환하고, 그렇지 않은 경우 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

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

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

이 신호는 스크립트 엔진의 상태가 변경될 때 발생합니다. ` state `는 ` QAxScriptEngine::State ` 열거형에 포함된 임의의 값을 가질 수 있습니다.

© 2026 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.