簡體   English   中英

QtQuick快捷方式中的處理修飾符

[英]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 ,這需要一些不同的方法,可以使用附加的屬性Keyshttp://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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM