[英]Handling modifiers in QtQuick Shortcut
我说一个简单的QtQuick应用程序
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
Shortcut {
sequence: "i"
context: Qt.ApplicationShortcut
onActivated: {
console.log("activated!")
}
}
}
当我按“ I”键时,我看到“已激活!” 在控制台中。 但是我的问题是我的应用程序应该响应Alt键(没有任何主键)。 当我将“ sequence”属性设置为“ Alt”(或“ Ctrl”,“ Shift”等任何修饰符)时,什么也不会发生。 那么有什么方法可以只处理快捷方式中的修饰符按下操作?
我想我不能使用Keys.onPressed,因为无论现在重点放在哪个项目上,我都想处理Alt键
如果您正在测试Windows,我认为没有办法在Windows上实现。 这对于我的应用程序也是一个问题,用户应该能够按住Alt才能使用颜色选择器。 虽然可以在macOS和Ubuntu上正常工作。
我的猜测是,它与alt是用于激活Windows上的菜单项的全局快捷方式有关。尽管对于Ubuntu来说也是如此,并且在这里也可以正常工作。
对于Windows上的Photoshop来说,这似乎也是一个问题,有几种常见的解决方法:
与Shortcut
,这需要一些不同的方法,可以使用附加的属性Keys
( http://doc.qt.io/qt-5/qml-qtquick-keyevent.html )
Item {
focus: true
Keys.onPressed: {
if (event.modifiers & Qt.AltModifier)
console.log("alt activated")
}
}
免责声明:由于修饰符有些不同,可能不会触发pressed
信号,因此有少许机会无法使用。 在这种情况下,我希望我至少已指出正确的方向
文档说您可以编写sequence: "Alt+i"
,但是目前无法尝试...。
祝你今天愉快
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.