Кажется, нет простого способа получить это.
Обходной путь:
- Создать отключенный
Shortcut
элемент
Это даст нам собственное представление платформы через его свойство nativeText
. - Извлечение из
Action
и добавление пользовательского свойства для хранения ярлыка
Это необходимо, поскольку shortcut
свойство Action
будет всегда возвращать строку, которая будет неправильно интерпретироваться элементом Shortcut
при использовании StandardKey
(элемент Shortcut
будет интерпретировать целочисленное значение как ярлыктаким образом, вы получите "3"
вместо "Ctrl+O"
). - Свяжите пользовательское свойство с ярлыком
Action
и с последовательностью Shortcut
Так в коде:
CustomAction.qml
import QtQuick 2.7
import QtQuick.Controls 2.4
Action {
/* Custom property */
property var keySequence
shortcut: keySequence
}
ToolTipButton.qml
import QtQuick 2.7
import QtQuick.Controls 2.4
Button {
/* Disabled Shortcut */
Shortcut {
id: dummyShortcut
enabled: false
sequence: action.keySequence
}
hoverEnabled: true
ToolTip.visible: hovered
ToolTip.delay: 1000
ToolTip.timeout: 5000
ToolTip.text: dummyShortcut.nativeText
}
Используется так:
main.qml
import QtQuick 2.7
import QtQuick.Controls 2.4
ApplicationWindow {
visible: true
CustomAction {
id: myAction
keySequence: StandardKey.Open
}
ToolTipButton {
id: myButton
action: myAction
text: "Trigger my action"
}
}