2010-03-17 211 views
2

显示我有困难做出QMenuBar显示QMenu在Mac OS X(雪豹)一个的QAction。的Qt4:QMenuBar/QMenu无法在Mac OS X

这里是我使用的用于创建菜单代码:

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

我解决了这个问题。

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

只需重命名行动“关闭”解决了这个问题。