在main.qml中,你如果想通过一个按钮动态创建一个页面(OtherPage.qml),并将页面(OtherPage.qml)压入栈顶
可以使用如下函数
pageStack.push(Qt.resolvedUrl("OtherPage.qml"));
函数原型如下:
PageStack::push ( page, properties, immediate )
其实你可以在创建页面的时候,向创建的页面传递参数(属性)
比如
你的OtherPage.qml是如下代码
<pre name="code" class="javascript">import QtQuick 1.0
Text {
width:100
height:100
text:"some thing"
}
你想在创建这个页面的时候,顺便改变他的属性text的话
就可以使用如下代码
pageStack.push(Qt.resolvedUrl("OtherPage.qml"), {text:"other page was created,and it text was changed!"} );
注意你只能想顶级控件传递属性参数!
如果你的OtherPage.qml的包含多个子控件,并且想在动态创建的时候传递属性参数,就需要在OtherPage.qml中做文章
import QtQuick 1.0
Rectangle {
property alias text : showText.text
Text {
id : showText
width : 100
height : 100
text : "some thing"
}
}
使用如下代码
pageStack.push(Qt.resolvedUrl("OtherPage.qml"), {text:"other page was created,and it text was changed!"} );
这样就能修改Rectangle中子控件Text的text属性了