[英]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.