【问题标题】:Using tab key for navigation in TextEdit在 TextEdit 中使用 Tab 键进行导航
【发布时间】:2013-01-14 17:49:19
【问题描述】:

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

TextEdit1 <-> TextEdit2 <-> Button

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

KeyNavigation.tab: TextEdit2
KeyNavigation.backtab: TextEdit1

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

【问题讨论】:

    标签: qml qt-quick


    【解决方案1】:

    我发现了问题。

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

    KeyNavigation.priority: KeyNavigation.BeforeItem
    

    完整的代码就这样变成了

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

    【讨论】:

      【解决方案2】:

      阅读Qml Keys element

      你可以这样做:

      TextEdit
      {
        width : 40
        height: 40
        text  : "junk"
      
        Keys.onTabPressed: 
        {
            // Write logic to transfer focus to whomsoever you want
        }
      }
      

      【讨论】:

      • 感谢您的回答!我考虑过这一点,但 KeyNavigation 方法似乎更干净 - 你知道是否有一种方法可以让我使用 KeyNavigation 吗?
      • 现在我找到了设置!感谢您提供这种替代方法。
      【解决方案3】:

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

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

      【讨论】:

      猜你喜欢
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-10-12
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多