QMenuBar содержит только неактивные пункты меню в OS X

По какой-то причине все мои пункты меню отображаются серым цветом, когда я использую встроенную строку меню в 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

Решение

Я подозреваю, что эта строка — ваш преступник:

addAction(newAct);

Вам не следует добавлять QActions в ваше окно, так как вместо этого вы будете добавлять их в объект fileMenu. Попробуйте удалить вышеуказанную строку.

0

Другие решения

У меня такая же проблема.

Настройка windowModality свойство моего главного окна в NonModal работал на меня.

0

По вопросам рекламы [email protected]