2017-05-12 3 views
1

Ich verwende QtQuick.Controls 2.0 TabBar, um eine SwipeView zu steuern. Standardmäßig TabBar und SwipeView reagiert auf die linken und rechten Pfeiltasten, mit was ich davon ausgehen, ist ein onPressed Handler.Schlüsselhandler von SwipeView, der Schlüsselhandler eines untergeordneten Elements vorgeht

Soweit ich das beurteilen kann, sind diese Standardschlüssel-Handler ohne Papiere.

Ich brauche ein bestimmtes Element in meinem UI Ereignis für alle vier Pfeiltasten zu erhalten, wenn und nur wenn es aktiv Fokus. Derzeit macht es so durch einen onReleased Handler, aber wann immer der Vorfahr SwipeView auf eine Taste reagiert, wird das Kind-Element nicht die erwartete onReleased Schlüsselereignis erhalten.

ich keinen Einspruch gegen die SwipeView ‚s Standardverhalten, aber ich will mein Verhalten Priorität zu nehmen. Wie kann ich es tun?

+0

Weder TabBar- noch SwipeView alle Verknüpfungen greifen. Sie filtern oder stehlen keine Schlüsselereignisse von anderen Elementen oder Steuerelementen. Sie behandeln nur Schlüsselereignisse, die sie erhalten, während sie fokussiert sind, oder nicht behandelte Schlüsselereignisse, die von Kindern weitergegeben werden. Wenn Ihr Benutzeroberflächenelement Schlüsselereignisse verarbeitet und nicht weiter an die übergeordneten Elemente weitergegeben werden soll, müssen Sie die Schlüsselereignisse akzeptieren. Beachten Sie auch, dass viele integrierten Steuerelemente, wie Tasten und Schieberegler, haben „starke“ Fokus Richtlinie standardmäßig, was bedeutet, dass sie den Fokus zu gewinnen, wenn darauf geklickt, zum Beispiel. – jpnurmi

+0

@jpnurmi Ich dachte, ich habe gezeigt, dass es nicht das 'war auf wichtige Ereignisse SwipeView' reagieren, und deshalb muss er die' TabBar' gewesen sein. Aber als ich versuchte, ein Beispiel zu bilden, das ich Ihnen als Antwort präsentieren konnte, stellte ich fest, dass ich mich selbst getäuscht hatte. – 01d55

Antwort

0

die onReleased Handler onPressed Durch die Änderung. Wenn es jemals einen guten Grund für diesen Handler gegeben hat, onReleased statt der häufiger verwendeten onPressed zu sein, ist es nicht mehr offensichtlich.

Verwandte Themen