使用Tab键在TextEdit中导航

时间:2013-01-14 17:49:19

标签: qml qt-quick

我有两个TextEdit框和一个自定义按钮小部件,我希望使用键盘上的Tab键按以下顺序更改焦点:

TextEdit1 <-> TextEdit2 <-> Button

我为每个小部件指定了类似于以下内容的内容,以获取上面的链:

KeyNavigation.tab: TextEdit2
KeyNavigation.backtab: TextEdit1

然而,我的问题是标签按键被TextEdit捕获,无法用于导航。如何禁用TextEdit中的标签,而是将其用于更改焦点?

3 个答案:

答案 0 :(得分:5)

我发现了问题。

默认情况下,键事件首先发送到接收事件的项目 - 而不是KeyNavigation。可以通过设置

来更改此行为
KeyNavigation.priority: KeyNavigation.BeforeItem

完整的代码因此成为

KeyNavigation.tab: TextEdit2
KeyNavigation.backtab: TextEdit1
KeyNavigation.priority: KeyNavigation.BeforeItem

答案 1 :(得分:3)

了解Qml Keys element

您可以这样做:

TextEdit
{
  width : 40
  height: 40
  text  : "junk"

  Keys.onTabPressed: 
  {
      // Write logic to transfer focus to whomsoever you want
  }
}

答案 2 :(得分:0)

在寻找类似问题的解决方案时,我在Qt Creator中遇到了这个选项,似乎解决了这个问题。现在我可以使用tab键移出QTextEdit对象,而不是在字段中插入制表符。

我看到主题已经过时并且已经解决了,但也许这个方便的简单选项可以通过Qt的更新更新获得,我不知道。我刚刚遇到它,我希望它可以帮助找到与我相同的解决方案。

enter image description here