2010-03-17 210 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忽略。

只需重命名行動「關閉」解決了這個問題。