1
커스텀 타입을 매개 변수로 전달하는 C++로부터 qml 메소드를 호출하려고합니다.커스텀 QObject 타입을 가진 qml 함수를 호출하는 Qt
이것은 내 사용자 정의 유형입니다 (* 내가 게시 한 모든 코드는 정확히 내가 사용하고있는 것이 아니며 관련 부분을 추출 했으므로 컴파일하려고하면 일부 변경이 가능할 수 있음을 유의하십시오)
Custom.h
class Custom : public QObject
{
Q_OBJECT
Q_PROPERTY(QString ssid READ getSSID WRITE setSSID)
public:
Q_INVOKABLE const QString& getSSID() {
return m_ssid;
}
Q_INVOKABLE void setSSID(const QString& ssid) {
m_ssid = ssid;
}
}
private:
QString m_ssid;
};
Q_DECLARE_METATYPE(NetworkInfo)
Custom.cpp
Custom::Custom(): QObject() {
setSSID("ABC");
}
Custom::Custom(const Custom & other): QObject() {
setSSID(other.getSSID());
}
를 I는 QML 방법
에게 전화 이것은 어디 만든QQuickItem& m_item
내가 QML 및 QT 메타 유형으로 사용자 정의 선언이
qmlRegisterType<Custom>("com.mycustom", 1, 0, "Custom");
내가 QML 내부의 매개 변수에 액세스하려고
import com.mycustom 1.0
function(custom) {
console.log(custom.ssid)
}
내가
를 얻을void MyClass::myMethod(const Custom &custom) {
QMetaObject::invokeMethod(&m_item,
"qmlMethod", Q_ARG(QVariant, QVariant::fromValue(custom)));
}
qml: undefined
내가
console.log(custom)
을 할 경우
나는, 나는 내 타입이 올바르게 (내가 지금
Custom {
....
}
과 QML에 직접 인스턴스화 문제없이 사용하고 Qt를로 가져라고 말하고 싶지만, 그렇게
qml: QVariant(Custom)
를 얻을 수 질문 :
왜 내가 ssid 속성에 액세스 할 수 없습니까?