首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当使用菜单QML类型时,event.modifiers不工作

当使用菜单QML类型时,event.modifiers不工作
EN

Stack Overflow用户
提问于 2015-11-09 15:10:47
回答 1查看 272关注 0票数 1

在QML中,当我使用菜单QML类型时,event.modifiers不工作在Keys.onPressed中,但是在注释菜单类型之后,它就起作用了。我做错了什么?是否有与菜单QML类型相关的错误?我正在使用QT5.4.0。

代码语言:javascript
复制
Rectangle {
id: main
width: 600
height: 300

Menu {
    id: menu
    title: "Edit";

    MenuItem { text: "Copy";shortcut: "Ctrl+C" }
    MenuItem { text: "Paste";shortcut: "Ctrl+V" }
    MenuItem { text: "Select" }
    MenuItem { text: "Select all";shortcut: "Ctrl+A" }

    MenuSeparator { }
    MenuItem { text: "Delete";shortcut: "Delete" }
    MenuItem { text: "Delete all" }

    MenuSeparator { }
    MenuItem { text: "Auto arrange" }

    }

Keys.onPressed: {
    if((event.key === Qt.Key_C) && (event.modifiers & Qt.ControlModifier))
    {
        console.log("Ctrl+C is pressed")
    }
}

MouseArea{
    anchors.fill : parent;
    acceptedButtons: Qt.LeftButton | Qt.RightButton

    onClicked: {
        main.focus = true;
        if(mouse.button === Qt.RightButton){
            menu.popup();
        }
    }
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-09 15:56:06

Menu不是视觉原语 (QQuickItem),因此不会接收事件:

所有可视化原语都支持通过键附加属性进行密钥处理。

当前使用的shortcut属性是提供菜单快捷方式的正确方法。您还可以分配一个action

若要响应被触发的快捷方式,请使用triggered信号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33612143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档