C++ Qt:QAction不';如果构造函数字符串以子字符串开头,则不会出现在菜单中;关于「;

C++ Qt:QAction不';如果构造函数字符串以子字符串开头,则不会出现在菜单中;关于「;,c++,qt,menu,qmenu,qmenubar,C++,Qt,Menu,Qmenu,Qmenubar,QAction构造函数是否对某些字符串进行了不同的处理?这是非常奇怪的-如果构造函数中的QString以“About”开头,这似乎使QAction在菜单中不可见 此被截断的对象位于QMainWindow子类的方法中: mFileMenu = new QMenu(tr("&File"), mMenuBar); mFileMenu->addAction(new QAction(tr("Export &Data"), mFileMenu)); // appears mFileMe

QAction构造函数是否对某些字符串进行了不同的处理?这是非常奇怪的-如果构造函数中的QString以“About”开头,这似乎使QAction在菜单中不可见

此被截断的对象位于QMainWindow子类的方法中:

mFileMenu = new QMenu(tr("&File"), mMenuBar);
mFileMenu->addAction(new QAction(tr("Export &Data"), mFileMenu)); // appears
mFileMenu->addAction(new QAction(tr("About"), mFileMenu)); // doesn't appear
mFileMenu->addAction(new QAction(tr("Abouut"), mFileMenu)); // appears
mFileMenu->addAction(new QAction(tr("Abouto"), mFileMenu)); // doesn't appear
mFileMenu->addAction(new QAction(tr("_About"), mFileMenu)); // appears
menuBar()->addMenu(mFileMenu);

有人能解释一下这种行为吗?

如果你在Mac电脑上,屏幕上会有一个提示:

Qt for Mac OS X还提供了一个菜单栏合并功能,以便 QMenuBar更符合公认的Mac OS X菜单栏布局

合并功能基于与文档标题匹配的字符串 QMenu条目。这些字符串在 “QMenuBar”上下文

如果一个条目被移动,它的插槽仍然会像在 原址

下表列出了查找的字符串以及条目所在的位置 如果匹配,则放置:

因此,该操作不会消失,它被放置在应用程序菜单上,如以下示例所示:


尝试使用
mFileMenu->addAction(新QAction(tr(“About”))添加新操作相反。没有带字符串的构造函数没有父级。但是,使用0作为父指针会导致相同的行为。无论是否使用父指针,我都无法重现此问题。请提供有关该问题的更多详细信息。请提供qDebug()的内容