Qt 如何实现用户定义的热键
在我的Qt5 QML应用程序中,我希望用户能够为操作选择热键。他们应该能够点击一个名为“设置热键”的按钮,然后他们下一步按下的任何键都会被记录下来并设置为操作的热键Qt 如何实现用户定义的热键,qt,qml,Qt,Qml,在我的Qt5 QML应用程序中,我希望用户能够为操作选择热键。他们应该能够点击一个名为“设置热键”的按钮,然后他们下一步按下的任何键都会被记录下来并设置为操作的热键 如何在QML中实现这一点?这只是一个示例,但您可以实现类似的功能,使用项记录允许的快捷方式,并在快捷方式QML类型中设置该快捷方式 import QtQuick 2.12 import QtQuick.Window 2.12 import QtQuick.Controls 2.11 import QtQuick.Layouts 1.
如何在QML中实现这一点?这只是一个示例,但您可以实现类似的功能,使用
项
记录允许的快捷方式,并在快捷方式
QML类型中设置该快捷方式
import QtQuick 2.12
import QtQuick.Window 2.12
import QtQuick.Controls 2.11
import QtQuick.Layouts 1.11
Window {
visible: true
width: 640
height: 480
RowLayout {
Button {
text: "Set Shortcut"
onClicked: myItem.focus = true;
}
TextEdit {
id: myTextEdit
}
}
Item {
id: myItem
focus: false
Keys.onPressed: {
console.log("recording shortcut")
if ((event.key === Qt.Key_A) && (event.modifiers & Qt.ShiftModifier))
{
myShortCut.sequence = "Shift+A";
focus = false;
}
if ((event.key === Qt.Key_X) && (event.modifiers & Qt.ControlModifier))
{
myShortCut.sequence = "Ctrl+X";
focus = false;
}
}
}
Shortcut {
id: myShortCut
onActivated: myTextEdit.text = "shortcut " + sequence + " pressed!"
}
}
你看了吗?您可以给它一个表示击键的字符串(例如“Ctrl-W”),并定义要执行的操作。此问题至少包含两个子问题,可以分别解决:捕获击键和应用快捷方式。请注意,查找教程超出StackOverflow的范围。@m7913d好的,我将编辑问题以不要求教程。Hanks@JarMan,我查看了快捷方式,但它没有描述如何使用用户指定的键序列设置它。@m7913d根据您的建议,我已在此处发布了第一个子问题,谢谢@Tarod。我有一个想法,可以减轻将键逐个映射到字符串的需要。好主意,@Mark干得好!:)