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 |