Mam jeden Loader
przy użyciu którego ładuję wiele ekranów/stron.Jak usunąć/usunąć ekran/stronę z wyświetlacza w QML?
Mam około 10 ekranów/stron QML, które ładuję w programie ładującym jeden po drugim na zdarzenia myszy.
Na niektórych ekranach należy ustawić przezroczystość za pomocą funkcji QWidget::setMask()
, aby część ekranu/strony stała się przezroczysta, a ekran można dziurkować.
Robię zestaw maski z kodu CPP przy użyciu QWidget::setMask()
na ekranie rootObject
, który jest Loader
.
QWidget::setMask
działa idealnie, ale obszar zamaskowany wyświetla poprzednio załadowany ekran/stronę.
Mam więc pytanie, czy element Loader
prawidłowo usuwa/usuwa załadowany komponent z ekranu przed załadowaniem nowego ekranu/strony w Loader
, jak wspomniano w dokumentach http://doc.qt.nokia.com/4.7-snapshot/qml-loader.html.
Ponadto istnieją dwa funkcja o nazwie Component.onDestroyed
i Component.onDestruction
Kiedy załadować nowy ekran/stronę w przypadku ładowarki onDestruction
jest wyrzucenie na ekranie załadowany.
Chcę całkowicie usunąć/zniszczyć ekran/stronę z ekranu po załadowaniu nowej strony do modułu ładującego. Próbowałem również ustawić widoczność i krycie wcześniej załadowanego ekranu, ale wciąż widzę ekran/stronę Wcześniej załadowany w obszarze zamaskowanym.
Jeśli ustawię program ładujący source = ""
i sourceComponent = undefined
, to również widzę poprzednią wczytaną stronę w programie ładującym, ale nie odświeżam ekranu. Poprzednia strona została zniszczona, ale nie została wyczyszczona/usunięta z ekranu.
Jaki powinien być powód?
tylko po to, aby wyjaśnić: używasz jednego pojedynczego programu ładującego i zmieniasz jego właściwość źródłową na jeden z 10 ekranów? –
Mam dokładnie ten sam problem. Czy udało ci się to rozwiązać? – MokaT