簡體   English   中英

使用 QtQuick 2.9 在按鈕單擊時檢索使用的修飾符

[英]Retrieving the used modifiers on button click with QtQuick 2.9

我有一個在 QtQuick 2.9 上運行的純 QML 應用程序。

我正在嘗試檢索鼠標單擊期間使用的鍵盤修飾符。

從 QtQuick 2.15 開始,我可以這樣寫:

Button {
    text: "button"
    onClicked: {
        if ((mouse.button == Qt.LeftButton) && (mouse.modifiers & Qt.ShiftModifier)) {
            doSomething();
    } else {
            doSomethingElse();
        }
    }
}

但是MouseEvent在 QtQuick 2.9 中不可用。

什么是替代方案?

按鈕的clicked信號不提供 MouseEvent(無論您使用的是哪個版本的 Qt)。 單擊信號也可以通過鍵盤生成,因此提供 MouseEvent 沒有意義。 您將需要創建一個 MouseArea 並自己處理事件以執行您想要的操作。

Button {
    id: button

    MouseArea {
        id: mouse
        anchors.fill: parent

        onPressed: {
            if ((mouse.button == Qt.LeftButton) && (mouse.modifiers & Qt.ShiftModifier)) {
                doSomething();
            } else {
                doSomethingElse();
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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