По какой-то причине все мои пункты меню отображаются серым цветом, когда я использую встроенную строку меню в 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
Есть идеи / предложения?
Я подозреваю, что эта строка — ваш преступник:
addAction(newAct);
Вам не следует добавлять QActions в ваше окно, так как вместо этого вы будете добавлять их в объект fileMenu. Попробуйте удалить вышеуказанную строку.
У меня такая же проблема.
Настройка windowModality
свойство моего главного окна в NonModal
работал на меня.