QT - C++에서 선언한 Enum을 QML에서 불러오기

w99hyun·2025년 12월 15일

QT Framework

목록 보기
3/4

QT에서 C++ 로직에 enum을 활용할 경우, QML에서 해당 enum을 불러오기 위해선 별도의 등록이 필요하다.

예를 들어 아래의 enum을 사용하고 싶다면,

<CPP>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    enum class Example { //enum과 enum class 모두 가능하다.
        A,
        B,
        C,
        D,
        E,
    };
    Q_ENUM(Example) //선언
<CPP>

qmlRegisterType<클래스명>("enum클래스명", 1, 0, "enum클래스명");

ex) qmlRegisterType<MainWindow>("Example", 1, 0, "Example");

이와 같이 Q_ENUM(Example)과 qmlRegisterType을 등록해줘야한다.
선언 위치는 상관없지만 보통 main에서 선언하는 경우가 일반적으로 보인다.

이렇게 C++에서 선언해줬으면 QML에서는 다음과 같이 사용할 수 있다.

<QML>

import Example 1.0; //qmlRegisterType으로 등록한 것을 import

...

Example.A
Example.B

이런식으로 불러와 사용할 수 있다.

0개의 댓글