3

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

TextEdit1 <-> TextEdit2 <-> Button

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

KeyNavigation.tab: TextEdit2
KeyNavigation.backtab: TextEdit1

然而,我的问题是选项卡击键被捕获TextEdit,并且不能用于导航。如何禁用选项卡TextEdit并使用它来更改焦点?

4

3 回答 3

5

我发现了问题。

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

KeyNavigation.priority: KeyNavigation.BeforeItem

完整的代码因此变成

KeyNavigation.tab: TextEdit2
KeyNavigation.backtab: TextEdit1
KeyNavigation.priority: KeyNavigation.BeforeItem
于 2013-01-14T21:19:44.490 回答
3

阅读Qml Keys 元素

你可以这样做:

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

  Keys.onTabPressed: 
  {
      // Write logic to transfer focus to whomsoever you want
  }
}
于 2013-01-14T21:01:49.340 回答
0

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

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

在此处输入图像描述

于 2017-05-31T13:46:15.610 回答