【问题标题】:Fill MenuBar on Mac在 Mac 上填充菜单栏
【发布时间】:2019-09-12 09:48:08
【问题描述】:

我尝试将 MenuBar 添加到我在 macOS 上开发的应用程序中,但我遇到了一个我不知道的问题:

作品:

     QAction *freeNameAct = new QAction(tr("&Settin"), this);
     freeNameAct->setStatusTip(tr("Create a new file"));

     QMenu *fileMenu = menuBar()->addMenu(tr("&File2"));
     fileMenu->addAction(freeNameAct);

但不起作用:

     QAction *freeNameAct = new QAction(tr("&Setting"), this);
     freeNameAct->setStatusTip(tr("Create a new file"));

     QMenu *fileMenu = menuBar()->addMenu(tr("&File2"));
     fileMenu->addAction(freeNameAct);

菜单栏的文本长度是否受到限制?

【问题讨论】:

    标签: c++ macos qt


    【解决方案1】:

    不,问题不在于长度。你可以这样做:

     QAction *freeNameAct = new QAction(tr("&Setting"), this);
     freeNameAct->setStatusTip(tr("Create a new file"));
     freeNameAct->setMenuRole(QAction::NoRole);
    

    每个 QAction 都有一个 menuRole 属性,用于控制应用程序菜单项的特殊放置;但是默认情况下,menuRole 是 TextHeuristicRole,这意味着菜单项将通过其文本自动检测。 Source

    在您的情况下,给操作一个文本“设置”,它被放置在应用程序菜单下,带有文本“首选项...”(这是 macOS 中的默认位置和名称),它从菜单文件2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      相关资源
      最近更新 更多