Qt4: QMenuBar / QMenu не отображается в Mac OS X - PullRequest
2 голосов
/ 17 марта 2010

У меня возникают трудности с отображением QMenuBar QMenu с QAction под Mac OS X (Snow Leopard).

Вот код, который я использую для создания меню:

void ClientWindow::setUpMenu ()
{
   QMenu * file = menuBar()->addMenu("&File");
   QAction * quit = new QAction("&Quit", this);
   file->addAction(quit);

   connect(quit, SIGNAL(triggered()), this, SLOT(quit()));
}

Вот интерфейс класса ClientWindow:

class ClientWindow : public QMainWindow
{
    public:
        ClientWindow (QWidget * parent = 0);
        void setUpMenu ();
};

А вот мой метод main ():

int main (int argc, char * argv[])
{
    QApplication app(argc, argv);
    ClientWindow window;

    window.setUpMenu();
    window.show();

    return app.exec();
}

Есть идеи, почему это не будет отображаться в строке меню? Спасибо всем.

Ответы [ 2 ]

2 голосов
/ 17 марта 2010

Я решил проблему.

Похоже, что уже есть одно действие под названием «Выход», которое является частью меню приложения по умолчанию (такое приложение есть в каждом приложении Mac OS X GUI). Это приводит к тому, что моя попытка добавить другое действие под названием «Выход» игнорируется либо Qt, либо Windows Server.

Простое переименование действия в «Закрыть» решило проблему.

1 голос
/ 16 июля 2010

Некоторые пункты меню автоматически сопоставляются с собственным меню Mac OSX:

см. http://doc.trolltech.com/4.6/mac-differences.html#menu-bar

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...