나는 하나의 Loader
을 사용하여 여러 화면/페이지를로드하고 있습니다.화면/페이지를 QML의 디스플레이에서 삭제/제거하는 방법은 무엇입니까?
나는 약 10 개의 QML 화면/페이지를 마우스 이벤트에서 하나씩 로더에로드하고있다.
화면의 일부에서 QWidget::setMask()
기능을 사용하여 투명도를 설정해야 화면/페이지의 일부를 투명하게 만들고 펀치 구멍을 화면에 표시해야합니다.
rootObject
의 QWidget::setMask()
을 사용하여 CPP 코드에서 마스크를 설정하고 있는데, Loader
화면입니다.
QWidget::setMask
은 완벽하게 작동하지만 마스킹 영역은 이전에로드 된 화면/페이지를 표시합니다.
Loader
요소는 http://doc.qt.nokia.com/4.7-snapshot/qml-loader.html 문서에서 설명한대로 Loader
에 새 화면/페이지를로드하기 전에 디스플레이에서로드 된 구성 요소를 제대로 삭제/제거합니까?
또한이 두 가지 기능 나는로드 화면 해고 된 로더 onDestruction
이벤트에서 새 화면/페이지를로드 할 때
Component.onDestroyed
및 Component.onDestruction
이름.
로더에서 새 페이지를로드하면 화면에서 페이지/페이지를 완전히 제거/제거하고 싶습니다. 이전에로드 된 화면의 가시성과 불투명도를 설정하려고했지만 여전히 마스크 된 영역에서 이전에로드 된 화면/페이지를 볼 수 있습니다.
로더의 source = ""
및 sourceComponent = undefined
을 설정하면 로더에 이전에로드 된 페이지가 표시되어 화면이 새로 고쳐지지 않습니다. 이전 페이지는 소멸되지만 디스플레이에서 삭제/제거되지 않습니다.
이유가 무엇입니까?
: 하나의 단일 로더를 사용하고 소스 속성을 10 개의 화면 중 하나로 변경하고 있습니까? –
나는 똑같은 문제가있다. 이 문제를 해결할 수 있었습니까? – MokaT