Ok. 그래서 나는이 사실을 완전히 이해했다고 생각했지만, 맹목적으로 내가 잘못한 것을 한 것입니다. 그리고 저의 인생이 무엇인지 이해할 수는 없습니다. 나는 자습서를 편지 (나는 확인했다)에 따라 갔지만 작동시키지 못한다. 그래서 여기에 간단한 질문을 해보자.C++ 및 QML 통합, 속성에 액세스 할 수 없습니다.
나는 클래스의 이름을 (이것은 단지 테스트 용입니다) 저장하는 간단한 QString 변수가있는 QObject를 기반으로 클래스를 생성 한, 그것은 다음과 같습니다
#include <QObject>
class CategoryPane : public QObject
{
Q_OBJECT
Q_PROPERTY(QString catName READ getCategoryName WRITE setCategoryName);
public:
explicit CategoryPane(QObject *parent = 0);
QString getCategoryName();
void setCategoryName(QString);
signals:
void nameChange();
private:
QString categoryName;
};
이이 등록되어 다음 함수 : qmlRegisterType ("ITI_UI", 1, 0, "CategoryPane");
그리고 나는이처럼 보이는 QML 파일 내 CategoryPane 클래스의 이름 변수를 출력하기 위해 노력하고있어 :
import QtQuick 1.0
import ITI_UI 1.0
Rectangle {
width: 300
height: 300
CategoryPane {
id: whatever
catName: "ey"
Text {
text: whatever.catName
}
}
}
하지만 다음과 같은 오류가 발생합니다 : QRC : /main.qml : 11 : 3 : 존재하지 않는 기본 속성에 할당 할 수 없습니다.
참고 : Text {} 필드를 제거하면 오류 메시지가 나타나지만 전체 이름 인 내 이름 문자열은 다시 인쇄 할 수 없습니다. ..
시간과 인내에 미리 감사드립니다.
실제로 어젯밤에 질문을 한 후 시합 2 시간 후에 QDeclarativeItem에서 상속해야한다는 것을 알았습니다. :) 그래도 rootContext() 메소드에 대해서는 알지 못해, 고마워! –