the-menu-is-gone-in-qt-on-mac-osx

30

在osx系统下, qt程序菜单项的名字如果是“quit”,"about"(不区分大小写), 这个菜单项就会消失, 如果这个菜单只包含这些会消失的菜单项, 那么这个菜单也会消失.
猜测: 这应该是由于跟osx系统默认给程序提供了一些菜单项有冲突的关系.

问题示例代码:

SimpleMenu::SimpleMenu(QWidget *parent)
    : QMainWindow(parent) {
    
  // 只要菜单项的名字不是“Quit”或“quit”就可以正常显示
  QAction *quit = new QAction("&Quit", this);
  // 只要菜单项的名字不是“About”或“about”就可以正常显示
  QAction *about = new QAction("&about", this);

  QMenu *file;
  file = menuBar()->addMenu("&File");
  file->addAction(quit);
  file->addAction(about);

  connect(quit, &QAction::triggered, qApp, QApplication::quit);
}