이는 QML 


QML 객체들과 상호작용하는 C++


- 모든 QML 객체들의 형태는 QObject에서 파생된 형태 이다. 

Once a QML object is created, it can be inspected from C++ in order to read and write to properties, invoke methods and receive signal notifications.


QML 객체가 생성되면 , 신호알림을 읽고 특성에 쓰기, 메소드를 호출하고 수신하기위해 C++에서 검사할 수 있다.


C++에서 QML 객체 불러오기


A QML document can be loaded with QQmlComponent or QQuickView.

QML 문서는 다음을 통해서 불러진다. 

 QQuickView is aQWindow-derived class, the loaded object will also be rendered into a visual display; QQuickView is generally used to integrate a displayable QML object into an application's user interface.


QQmlComponent or QQuickView. 의 차이?


<<좌측은 되지않았고 QQuickView를 이용해 QML파일을 불러왔다.


위는 속성 너비와 높이를 변경하는 소스이다.


You can also connect to any signals or call methods defined in the component usingQMetaObject::invokeMethod() and QObject::connect(). See Invoking QML Methods and Connecting to QML Signals below for further details.



Accessing Loaded QML Objects by Object Name- 아직못함


qml에서의 property 정의 


// MyItem.qml
import QtQuick 2.0

Item {
    property int someNumber: 100
}

다음과 같이 변경할수 있다.

QQmlEngine engine;
QQmlComponent component(&engine, "MyItem.qml");
QObject *object = component.create();

qDebug() << "Property value:" << QQmlProperty::read(object, "someNumber").toInt();
QQmlProperty::write(object, "someNumber", 5000);

위에 것은 안될 것같고 다음을 이용햇다.

qDebug()<<object->property("number").toInt();

    object->setProperty("number",200);
    object->property("number").toInt();

    qDebug()<<object->property("number").toInt();



Invoking QML Methods




버튼 클릭을 통해 속성을 변경해보자.


단어 

derived - (형용사) 파생된 , 유래된 

implement - (타동사) 시행하다  (명사)(옥외활동에 쓰이는 간단한)도구 기구

modified - (형용사) 완화된, 한정된, 수정된

component - (명사) 요소, 부품

invoking : 호출


원문</p> <p>Qt 공식사이트 의  - Interacting with QML Objects from C++

'Qt' 카테고리의 다른 글

QAbstractListModel 클래스  (0) 2015.10.26
Embedding C++ Objects into QML with Context Properties[26]  (0) 2015.10.26
Property Value Initialization Semantics[10_23]  (0) 2015.10.23
Exposing Attributes of C++ Types to QML[QT]  (0) 2015.10.23
git 설치  (0) 2015.06.29

+ Recent posts