enum 을 사용 한 샘플 코드


 

 


C++에서 정의한 함수를 QML 에서 호출하기 위해서는 Q_INVOKABLE 을 사용한다.



헤더 enumcode.h

Q_ENUMS (Bit) //C 파일에서 사용시 필요없지만 qml 에서 사용하기 위해서는 필요하다.


public: 

Q_INVOKABLE Bit igetBit() { return eData; }

     Q_INVOKABLE void isetBit(Bit data)      { eData = data; }


main.cpp 에 추가

1.

qmlRegisterType<EnumCode>("kw.project", 1, 0, "Qmlkw");  

//qml 에서 사용시 import kw.project 1.0 주로 enum 값을 사용할 때 쓰임


2.

QQuickView view;

view.rootContext()->setContextProperty("BitObject", test1);  

// QML 에서 BitObject 라는 이름으로 test1 객체(인스턴스를 사용한다.)


    view.setSource(QUrl::fromLocalFile("qml/main_front.qml"));





BitObject.KW 1        // enum 에접근 불가 view.rootContext()->setContextProperty("BitObject", test1);

Qmlkw.KW1             // enum 에 접근 가능 import kw.project 1.0



참고 사이트

New in Qt 5.5: Q_ENUM and the C++ tricks behind it


http://www.hitmaroc.net/508680-4550-exposing-enums-qml.html


http://www.qtcentre.org/threads/51015-Q_ENUMS-and-Qt-Style-Sheet




'Qt' 카테고리의 다른 글

리스트 QAbstractListModel[11_10]  (0) 2015.11.10
Qt 에서 이벤트 처리하기 event  (0) 2015.10.30
QQuickView 옵션  (0) 2015.10.26
다국어처리  (0) 2015.10.26
QAbstractListModel 클래스  (0) 2015.10.26

+ Recent posts