Qt4:QMenuBar / QMenu没有出现在Mac OS X上

时间:2010-03-17 05:15:17

标签: macos qt4

我很难在Mac OS X(Snow Leopard)下使QMenuBar显示带有QAction的QMenu。

以下是我用于创建菜单的代码:

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 个答案:

答案 0 :(得分:2)

我解决了这个问题。

似乎已经有一个名为“退出”的操作,它是默认应用程序菜单的一部分(每个Mac OS X GUI应用程序都有这样的菜单)。这导致我尝试添加另一个名为“Quit”的操作,以便被Qt或Window Server忽略。

只需将操作重命名为“关闭”即可解决问题。

答案 1 :(得分:1)

有些menupoints会自动映射到mac osx原生菜单:

请参阅http://doc.trolltech.com/4.6/mac-differences.html#menu-bar