如何设置关于TextArea的shotcut组合键?

时间:2015-06-18 14:15:22

标签: qt qml qtquick2

当我按下 ctrl + a ctrl +等组合键时,我想在array('page' => $page-1)内插入一个字符串 s ctrl + c

我已经写了一些代码,但它没有用。

example.qml

TextArea

1 个答案:

答案 0 :(得分:1)

Keys.onPressed块移到TextArea元素内以便接收事件,就像这样:

import QtQuick 2.4
import QtQuick.Controls 1.3

TextArea
{
    id: textArea
    anchors.fill: parent

    Keys.onPressed:
    {
        if (event.modifiers == Qt.ControlModifier)
        {
            switch (event.key)
            {
                case Qt.Key_A:
                {
                    console.log("select")
                    event.accepted = true
                    break
                }
                case Qt.Key_S:
                {
                    console.log("save")
                    event.accepted = true
                    break
                }
                default:
                    event.accepted = false
            }
        }
    }
}

修改

还提供最少的解释:在您的情况下,周围的Rectangle将处理按键事件 - 只要其焦点设置。当您开始在TextArea内部进行输入(现在它具有焦点)时,您将绕过密钥处理程序。而不是设置/重置焦点,让TextArea处理所有关键事件变得更容易。

希望这有帮助!