0
我有一個QObject,它包裝其他純對象:如何通知QML項目其屬性已更改?
#include "qmlnote.h"
QString QmlNote::title() const {
return note_.title();
}
void QmlNote::reload(const Note ¬e) {
note_ = note;
}
,我用這個QML中加載:
ctxt->setContextProperty("note", &qmlNote);
,後來我讓換一個不同的音符:
qmlNote.reload(newNote);
然後在QML,我想要做的事時,這個變化爲:
import QtQuick 2.0
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.1
Item {
property QtObject note
onNoteChanged: {
console.info(note.title)
}
}
我希望onModelChanged()
只要我打電話reload()
就會觸發,但不會發生。我想我需要從某處發出一些信號來通知QML視圖該註釋已經改變,但不知道在哪裏。我以爲我可以從reload()
發出信號,但似乎QObject
沒有內置的changed
信號。
有關如何處理這個問題的任何建議?
完美,非常感謝 –
此外,如果你做「標題」一個對你'QmlNote'類屬性,你可以在任何屬性綁定使用'note.title',它會得到重新讀取時你發出該屬性的更改信號 –
我會建議,但示例代碼不會在綁定中使用它。實施適當的財產是大多數情況下的一個好主意。 – dtech