본문 바로가기
Development Solutions/Qt & QML

How to define and use javascript as singleton in Qt framework (Qt프레임워크에서 javascript를 싱글턴으로 정의하여 사용하는 방법)

by studio ODOC 2023. 8. 9.
반응형

How to define and use javascript as singleton in Qt framework

Qt프레임워크에서 javascript를 싱글턴으로 정의하여 사용하는 방법

 

(추천) Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발 강의 - 입문편

https://inf.run/3XmSH

 

Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발 - 입문편 강의 - 인프런

Qt QML과 C++를 사용하여 크로스플랫폼 애플리케이션 개발에 입문할 수 있습니다. 해당 강의에서는 윈도우 응용 프로그램 타겟으로 개발을 진행합니다., 강의 주제 📖 이 강의를 통해 참가자들은

www.inflearn.com

 

 

First, at the top of the javascript file below (먼저, 아래의 javascript 파일의 상단에)

.pragma library

Enter the code above. Just like this. (위 코드를 입력한다. 바로 이렇게.)

반응형
// factorial.js
.pragma library

var factorialCount = 0;

function factorial(a) {
    a = parseInt(a);

    // factorial recursion
    if (a > 0)
        return a * factorial(a - 1);

    // shared state
    factorialCount += 1;

    // recursion base-case.
    return 1;
}

function factorialCallCount() {
    return factorialCount;
}

 

And in the qml file, just import the javascript file as before!
Even if you import from multiple qml files,
There is only one javascript object created during program runtime. (= singleton)

 

(그리고 qml파일에서 기존과 같이 javascript 파일을 import하면 된다!

여러 qml파일에서 import하더라도,

프로그램 런타임 중에 생성되는 javascript 오브젝트는 단 1개이다. (=싱글턴))

 

// Calculator.qml
import QtQuick 2.0
import "factorial.js" as FactorialCalculator // This JavaScript resource is only
                                             // ever loaded once by the engine,
                                             // even if multiple instances of
                                             // Calculator.qml are created.

Text {
    width: 500
    height: 100
    property int input: 17
    text: "The factorial of " + input + " is: " + FactorialCalculator.factorial(input)
}

Example_Qt6.5 document

 

(추천) Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발 강의 - 입문편

https://inf.run/3XmSH

 

Qt QML과 C++로 시작하는 크로스플랫폼 앱 개발 - 입문편 강의 - 인프런

Qt QML과 C++를 사용하여 크로스플랫폼 애플리케이션 개발에 입문할 수 있습니다. 해당 강의에서는 윈도우 응용 프로그램 타겟으로 개발을 진행합니다., 강의 주제 📖 이 강의를 통해 참가자들은

www.inflearn.com

 

반응형