2017-10-30 9 views
0

Ich implementiere StackView in meiner Anwendung.Stackview ruft Slots für vorherigen Bildschirm auf

SwipeView { 
id: swipeView 
anchors.fill: parent 
currentIndex: showfooter.currentIndex 

     DashboardListView{ 
     id:dashboard 
     } 

     Settings{ 
     id:setting 
     } 

     Cart{ 
     id:cart 
     } 
} 


StackView { 
    id: stackView 

    initialItem: Pane { 
     id: pane 
    } 
} 

Wenn ich einen anderen Bildschirm bin Laden (wie SightDescription.qml) von DashboardListView Push-Verfahren und irgendwo auf diesem Bildschirm seinen Aufruf Slots für DashboardListView cliking. DashboardListView Bildschirmsteuerelemente erhalten ein Klicksignal. Gibt es irgendeine Einstellung in Bezug auf die Stapelansicht, die ich tun muss, lese ich die Dokumentation von stackview, habe aber nichts gefunden, was dieses Verhalten einschränken könnte.

Antwort

1

Es scheint, als ob die Pane normalerweise die Mausereignisse abfängt, so dass die niedrigeren Item s sie nicht empfangen können.

Wenn Sie das neue Element auf drücken, wird Pane zu visible: false und daher ist der Eingang nicht mehr wichtig. Wenn die neue Item die Mausereignisse nicht verarbeitet, werden sie an die niedrigere Item weitergegeben.

Um das zu verhindern, haben Sie verschiedene Möglichkeiten:

  1. Vergewissern Sie sich, dass alle Item s auf der StackView gedrückter Mausereignisse behandelt, z.B. indem Sie einen Pane oder einen MouseArea Root-Eintrag erstellen.
  2. Platz ein MouseArea direkt unter dem StackView, dass nur dann aktiviert wird, wenn es Item s auf dem StackView
  3. Einige mehr ... z Installation von EventFilter s in C++ e.t.c. aber ich denke, 1 und 2 sollten ausreichen und einfach zu implementieren sein.
Verwandte Themen