You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows平台QML菜单技术问题:深色模式适配与快捷键跳转

问题2:让Qt原生菜单支持下划线字符跳转(Alt+字母)

Qt原生QML菜单默认支持助记符功能,只需显式启用并配置:

  1. 启用助记符显示:
    在QML中为MenuBar、Menu、MenuItem设置mnemonicVisible: true,让&标记的字母显示下划线:

    ApplicationWindow {
        width: 640
        height: 480
        visible: true
        title: qsTr("Hello World")
    
        menuBar: MenuBar  {
            id: menuBar
            mnemonicVisible: true // 开启菜单栏助记符显示
    
            Menu {
                id: fileMenu
                title: qsTr("&File")
                mnemonicVisible: true // 开启菜单助记符显示
    
                MenuItem {
                    id: openMenuItem
                    text: qsTr("&Open...")
                    mnemonicVisible: true // 开启菜单项助记符显示
                    shortcut: "Alt+O" // 绑定Alt+O快捷键
                    onTriggered: fileOpenAction.trigger()
                }
            }
        }
    }
    
  2. 绑定快捷键逻辑:
    如果使用C的QAction,可直接在C中设置快捷键:

    QAction* fileOpenAction = new QAction(tr("&Open..."), this);
    fileOpenAction->setShortcut(QKeySequence(Qt::ALT + Qt::Key_O));
    

    QML中关联该Action后,按下Alt+O即可触发对应功能。

  3. 触发逻辑验证:
    按下Alt键时,菜单会显示下划线标记;继续按下对应字母键(如F打开File菜单,O触发Open项),即可完成跳转。


内容的提问来源于stack exchange,提问作者Adam Wilt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 21:55:11