1

我想在快捷方式+Action上触发哪个触发器Ctrl↓</kbd>.

我能做的是有快捷方式↓</kbd>:

Action {
    shortcut: StandardKey.MoveToNextLine
    enabled: true
    onTriggered: console.log('Down pressed')
}

但是我如何定义快捷键Ctrl+↓</kbd>?

4

2 回答 2

2

从你的文档shortcut读到:

绑定到操作的快捷方式。键序列可以是字符串标准键

QKeySequence toString()方法文档中,您还了解到:

根据格式返回键序列的字符串表示形式。

例如,值 Qt::CTRL+Qt::Key_O 会导致“ Ctrl+O ”。如果按键序列有多个按键代码,则每个按键代码在返回的字符串中用逗号分隔,例如“Alt+X, Ctrl+Y, Z”。字符串“Ctrl”、“Shift”等在“QShortcut”上下文中使用 QObject::tr() 进行翻译。

因此,使用键名组合而不是StandardKey这样:

import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.3

ApplicationWindow {
    id: rectangle
    width: 200
    height: 200
    visible: true

    Action {
        shortcut: "Ctrl+Down"
        enabled: true
        onTriggered: console.log('Down pressed [ctrl hold]')
    }
}
于 2015-07-09T08:02:22.670 回答
-1

使用类似的东西:

Keys.onPressed: {
    if ((event.key == Qt.Key_Down) && (event.modifiers & Qt.ControlModifier))
        doSomething();
}
于 2015-07-09T08:02:07.293 回答