2016-06-03 1 views
1

QML 양식의 수명주기를 제어하려면 어떻게해야합니까? Android에서 onCreate, onResume, onPause 등의 메소드 또는 iOS에서의 라이프 사이클을 이야기합니다. Android, iOS, Windows 10 Mobile, 데스크톱 등에서 QML 양식의 수명주기를 수행 할 수 있습니까?Qt 양식 (또는 Windows)의 수명주기

답변

1

Qt Quick (QML) 애플리케이션의 디자인은 Android의 디자인과 다릅니다. Button, Text 등과 같은보기와 객체 간에는 차이점이 없습니다. 그래픽 표현이있는 모든 QML 객체는 Item을 상속하며 Component.onCompletedComponent.onDestruction 함수를 정의 할 수 있습니다. 그들은 일단 대상이 생성되고 파괴되면 실행될 것입니다. 일시 중지 신호가 필요한 경우 뷰를 관리하고 뷰를 관리, 삭제, 일시 중지 및 재개 할 객체를 만들고 만드는 모든 뷰에 함수 pause()resume()을 생성하는 것이 좋습니다. 보기 간의 전환을 처리하고 스스로를 진술해야합니다. 또한 자신 만의 QML 객체를 만들 수 있기 때문에 뷰 템플릿을 만든 다음 상속받을 필요가 있습니다.

앱을 배포하는 모든 시스템에서 작동합니다.

기타 질문이있는 경우 질문 등을 수정하거나 의견을 남기십시오.


유용한 정보는 BaCaRoZzo에 다시 한번 감사하고 싶습니다. 이 답변에 추가했습니다.


나는 안드로이드 응용 프로그램 라이프 사이클을 모방하려고 예제 프로젝트를 만들었습니다. 이것은 모든 OS에서 작동합니다. 이것은 단지 예일 뿐이지 만 유사한 접근법이 릴리즈 소스에서 사용될 수 있다고 생각합니다. 그러나 먼저 QML의 성격을 이해해야합니다. 이것은 이미 다른 프로세스에서 관리하고있는 고급 언어입니다. 그것은 Java와는 완전히 다릅니다. 예를 들어 백그라운드 프로세스에 의해 사용되는 상태에 대한 docs의 조각에서 살펴 :

Qt는 빠른 응용 프로그램은 일반적으로 QML 수준에서이 상태를 처리해서는 안된다. 대신 응용 프로그램이 다시 활성화 될 때마다 전체 UI를 언로드하고 QML 파일을 다시로드해야합니다.

그래서 내가 당신 인 경우 응용 프로그램이 백그라운드로 진행될 때 민감한 데이터 만 저장합니다. 무언가를 시도하고 unlod 필요가 없습니다 등 QML이 위해 설계되지 않기 때문에 그것은 불필요한 오르막 투쟁이 될 것입니다. 대신 OS가 더 많은 메모리를 필요로한다면 앱을 죽여라.

예제 프로젝트 here을 찾을 수 있습니다. 원하는 경우 사용할 수 있습니다. 여기에는 무슨 일이 벌어지고 있는지 더 잘 이해할 수 있도록 설명이 포함되어 있습니다.

+0

감사합니다. 모든 플랫폼에서 작성, 삭제, onstart, onresume, onpause 등의 예제를 제공 할 수 있습니까? –

+1

@ İbrahim 예. 나는 2 시간 만에 내 대답을 업데이트 할 것이다. –

+2

'Qt' 객체와 그'''application'' (http://doc.qt.io/qt-5/qml-qtqml-qt.html)도있다. # application-prop) 속성을 사용합니다. 플랫폼간에 일관된 방식으로 작동해야합니다. – BaCaRoZzo