我的问题没有找到答案,所以我想解释一下。
我有一些QML页面,我使用StackView对象管理我的页面,我想调用第2页第1页的函数... 例如
//Page 1
Item{
id: page1
function test(){
console.debug("Page 1 man ! ");
}
... something
}
}
我想调用第1页上的测试功能
//Page 2
Item{
id: page2
Compoment.onCompleted: page1.test();
... something
}
}
任何人都有解决方案吗?
yekmen
答案 0 :(得分:0)
由于范围限制,您无法直接从另一个页面访问功能。因此解决方案是在根项目中创建一些代理功能。小例子:
Item {
id: root
function proxy(target_page) {
switch(target_page) {
case 1: page1.test(); break;
case 2: page2.test(); break;
case 3: page3.test(); break;
}
}
Item {
id: page1
function test() {
}
Component.onCompleted: {
root.proxy(2);
}
}
Item {
id: page2
function test() {
}
}
Item {
id: page3
function test() {
}
}
}
这不是现场的例子,只是想法。这里page1通过根元素函数调用page2初始化。