PageStack의 두 번째 페이지가 실행되는 것을 어떻게 방지합니까?

PageStack의 두 번째 페이지가 실행되는 것을 어떻게 방지합니까?

여기에 뭔가 빠졌을 수도 있지만 페이지 2가 로드되기 전에 코드가 실행되는 이유가 확실하지 않습니다.

http://pastebin.ubuntu.com/8068379/

그리고 버튼을 누르기 전에 2페이지의 기능과 코드가 실행되지 않도록 하는 방법이 있나요?

답변1

Component.onCompleted인터프리터가 QML 파일을 읽고 객체로 구문 분석하는 즉시 실행됩니다. 이때 "페이지 2" 개체가 생성되었지만 visible: false볼 수는 없습니다. 이는 코드 실행을 방해하지 않습니다 onCompleted.

나는 페이지가 스택에 푸시될 때만 코드가 실행되도록 하는 세 가지 방법을 알고 있습니다.

  1. pageStack.push()실행하려는 다른 코드를 호출하고 트리거하는 사용자 정의 함수를 만듭니다 .

  2. onCompleted페이지 2의 처리기 에서 처리기로 코드를 이동합니다 onVisibleChanged. 페이지가 스택에서 푸시되거나 팝될 때 모두 호출됩니다. visible무슨 일이 일어나고 있는지 알려주는 값을 확인하십시오 .

  3. 페이지 2 개체를 "page2.qml"이라는 별도의 파일로 이동하고 푸시 호출을 pageStack.push(Qt.resolvedUrl("page2.qml")). 그러면 스택에 푸시될 때마다 새로운 2페이지 개체가 생성됩니다. 이것은 당신이 원하는 것일 수도 있고 아닐 수도 있습니다.

이 세 가지 모두 페이지 2가 스택에 푸시될 때마다 코드를 호출합니다. 처음에만 호출되도록 하려면 직접 추적해야 합니다. 객체 생성이 pageStack과 상호 작용하는 방법에 대한 자세한 내용은 다음을 확인하세요.이 답변.

관련 정보