我有一个main.qml,其中插入了MainPage.qml:
initialPage: MainPage {tools: toolBarLayout}
因为我选择使用Symbian。当我尝试:
QObject *mainPage = rootObject->findChild<QObject*>("MainPage");
if (mainPage)
QDeclarativeProperty(mainPage, "toets").write(3);
消息未通过,但没有错误,我也尝试使用“if(mainPage)”将SIGNAL连接到MainPage上的SLOT,但它也没有响应。我已经设法通过主要信号,但是当我尝试时:
function changeNum(num)
{
MainPage.changeNum(num)
}
该函数永远不会执行,因为我没有收到来自console.log的消息,这与我在main运行时的函数不同。我也知道其他方法不起作用,因为它也没有记录消息或执行其余的功能。
我认为问题可能在于MainPage没有被创建为具有id的元素。你知道这可能导致什么吗?
答案 0 :(得分:8)
findChild
不会查找id
,而是objectName
属性,您只需在MainPage
对象中添加该属性(请参阅documentation):
initialPage: MainPage {
objectName: "MainPage"
tools: toolBarLayout
}
您还可以通过initialPage
的{{1}}属性访问该对象,而无需添加rootObject
属性:
objectName