Qml SwipeView';s密钥处理程序抢占子级的密钥处理程序

Qml SwipeView';s密钥处理程序抢占子级的密钥处理程序,qml,qtquickcontrols2,Qml,Qtquickcontrols2,我正在使用QtQuick.Controls 2.0TabBar来控制SwipeView。默认情况下,TabBar和SwipeView响应左右箭头键,使用我假设的onPressed处理程序 据我所知,这些默认的密钥处理程序是没有文档记录的 我需要在我的UI中有一个特定的元素来获取所有四个箭头键的事件,当且仅当它有活动焦点时。当前,它通过onReleased处理程序执行此操作,但每当祖先SwipeView响应键时,子元素都不会收到预期的onReleased键事件 我不反对SwipeView的默认行为

我正在使用QtQuick.Controls 2.0
TabBar
来控制
SwipeView
。默认情况下,
TabBar
SwipeView
响应左右箭头键,使用我假设的
onPressed
处理程序

据我所知,这些默认的密钥处理程序是没有文档记录的

我需要在我的UI中有一个特定的元素来获取所有四个箭头键的事件,当且仅当它有活动焦点时。当前,它通过
onReleased
处理程序执行此操作,但每当祖先
SwipeView
响应键时,子元素都不会收到预期的
onReleased
键事件


我不反对SwipeView的默认行为,但我希望我的行为优先。如何操作?

onReleased
处理程序更改为
onPressed
。如果有一个很好的理由让该处理程序被
onReleased
而不是更常用的
onPressed
,那么它就不再明显了。

onReleased
处理程序更改为
onPressed
。如果有一个很好的理由让该处理程序在按下时被释放,而不是更常用的按下时,那么它就不再明显了。

TabBar和SwipeView都没有任何快捷方式。它们不会从其他项或控件中过滤或窃取关键事件。它们只处理聚焦时接收的关键事件,或从子级传播的未经处理的关键事件。如果您的UI元素处理关键事件,并且您不希望它们进一步传播到父级,请确保接受关键事件。还请注意,许多内置控件,如按钮和滑块,默认情况下具有“强”焦点策略,这意味着它们在单击时获得焦点。@jpnurmi我想我已经向自己表明,响应关键事件的不是
SwipeView
,因此它一定是
选项卡栏。但当我试图用一个例子来回答你们的问题时,我发现我欺骗了自己。TabBar和SwipeView都没有捷径。它们不会从其他项或控件中过滤或窃取关键事件。它们只处理聚焦时接收的关键事件,或从子级传播的未经处理的关键事件。如果您的UI元素处理关键事件,并且您不希望它们进一步传播到父级,请确保接受关键事件。还请注意,许多内置控件,如按钮和滑块,默认情况下具有“强”焦点策略,这意味着它们在单击时获得焦点。@jpnurmi我想我已经向自己表明,响应关键事件的不是
SwipeView
,因此它一定是
选项卡栏。但当我试图用一个例子来回答你们的问题时,我发现我愚弄了自己。