Loader
複数の画面/ページをロードするために使用しているものがあります。
マウスイベントでローダーに1つずつロードしている約10個のQML画面/ページがあります。
QWidget::setMask()
一部の画面では、画面/ページの一部を透明にし、画面にパンチ穴を開ける機能を使用して透明度を設定する必要があります。
画面であるを使用QWidget::setMask()
して、CPPコードからマスクを設定しています。rootObject
Loader
QWidget::setMask
は完全に機能していますが、マスクされた領域には以前にロードされた画面/ページが表示されます。
だから私は質問があります、ドキュメントhttp://doc.qt.nokia.com/4.7-snapshot/qml-Loader
に記載されているように、要素は新しい画面/ページをロードする前に、ロードされたコンポーネントをディスプレイから適切に削除/削除しますか? loader.html。Loader
また、とという名前の2つの関数がComponent.onDestroyed
ありますComponent.onDestruction
ローダーで新しい画面/ページをロードするonDestruction
と、ロードされた画面に対してイベントが発生します。
ローダーに新しいページをロードしたら、画面/ページをディスプレイから完全に削除/破棄したい。以前にロードされた画面の可視性と不透明度も設定しようとしましたが、それでもマスクされた領域に以前にロードされた画面/ページを表示できます。
ローダーを設定source = ""
しsourceComponent = undefined
た後、以前にロードされたページがローダーに表示されても、画面が更新されません。前のページは破棄されますが、表示からクリア/削除されません。
理由は何ですか?