出于某种原因,当我在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
有任何想法/建议吗?
答案 0 :(得分:0)
我怀疑这条线是你的罪魁祸首:
addAction(newAct);
您不应该将QActions添加到窗口,因为您将把它们添加到fileMenu对象中。尝试删除上面的行。
答案 1 :(得分:0)
我遇到了同样的问题。
将我的MainWindow的windowModality
属性设置为NonModal
对我有效。