2014-10-22 5 views
0

내 대답에서 내 대답을 찾을 수 없으므로 설명하고 싶습니다.다른 페이지에서 함수를 호출하는 방법

나는 내가 StackView 객체 내 페이지를 관리하고 나는

//Page 1 
Item{ 
id: page1 
function test(){ 
    console.debug("Page 1 man ! "); 
} 
... something 
} 
} 

싶습니다 예를 들어 2 페이지 ... 에서 1 페이지에있는 함수를 호출하고 싶습니다 일부 QML 페이지가 1 페이지에있는 테스트 기능을 호출하십시오.

//Page 2 
Item{ 
id: page2 
Compoment.onCompleted: page1.test(); 
... something 
} 
} 

누구나 해결책이 있습니까?

yekmen

답변

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를 호출합니다.

관련 문제