0

出于某种原因,当我在 OS X Mavericks 上使用本机菜单栏时,我的所有菜单栏项都是灰色的:

菜单栏

我使用以下代码创建菜单操作:

newAct = new QAction(tr("&New"), this);
newAct->setShortcuts(QKeySequence::New);
newAct->setStatusTip(tr("New"));
newAct->setShortcutContext(Qt::ApplicationShortcut);
newAct->setEnabled(true);
newAct->setAutoRepeat(false);
addAction(newAct);
connect(newAct, SIGNAL(triggered()), this, SLOT(newFile()));
...

然后将这些操作添加到菜单栏,如下所示:

// _menuBar = new QMenuBar(0);
_menuBar = menuBar();
//_menuBar->setNativeMenuBar(false);

fileMenu = _menuBar->addMenu(tr("&File"));
fileMenu->addAction(newAct);

取消注释第一行显示相同的行为。但是,当我使用非本机菜单栏时,它确实可以正常工作。

Qt版本:

$ /usr/local/qt/5.3/clang_64/bin/qmake -v    
QMake version 3.0
Using Qt version 5.3.1 in /usr/local/qt/5.3/clang_64/lib

有什么想法/建议吗?

4

2 回答 2

0

我怀疑这条线是你的罪魁祸首:

addAction(newAct);

您不应该将 QActions 添加到您的窗口,因为您会将它们添加到 fileMenu 对象。尝试删除上面的行。

于 2014-07-20T00:14:56.100 回答
0

我有同样的问题。

windowModality我的 MainWindow 的属性设置为对我有用NonModal

于 2016-06-24T20:02:34.097 回答