我在我的主页上创建了一个列表视图,我编写了一个函数来重新加载一个名为reloadView的函数中的listview。现在,当我收到推送通知时,我需要刷新此列表视图。目前,当我收到推送通知时,我在我的applicationui.cpp中的方法pushnotificationhandler()内接到一个调用。因此,当我收到通知时,我需要调用主页的reloadView功能来刷新列表并显示主页。我能够使用QMetaObject执行此操作并且函数会被调用,但对于像Color和_settings这样的变量,它会显示引用错误。在提交cpp之前我还需要声明什么来访问这些变量吗?
以下是我的主页结构
Page {
id: menuScreenPage
objectName: "menuScreenPage"
// This is the function I need to call from applicationui.cpp
function reloadView()
{
// shows a reference error on this line
homePageScroll.getMyContacts(_settings.getArrayFor("contactList", null));
}
Container {
background: Color.create("#9B59B6") // shows a reference error on this line
layout: DockLayout {
}
ScrollView {
id: homePageScroll
Container {
layout: DockLayout {
}
ListView {
//somecode
}
}
function getMyContacts(contacts)
{
//some code to get contacts
}
}
attachedObjects:[
GroupDataModel {
id: contactsData
sortingKeys: [ "last" ]
grouping: ItemGrouping.None
}
]
}
}
//尝试使用metaobject
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine,
QUrl::fromLocalFile(QFileInfo("app/native/assets/HomePage.qml").absoluteFilePath())));
QObject *object = component.create();
QVariant returnedValue;
QMetaObject::invokeMethod(object, "reloadView");
delete object;