이는 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 |