2011-11-13 128 views
2

我在Mac 10.6上,我试图用Qt(Creator)创建一个菜单,但菜单没有出现。我有一些饲料从其他PC用户回来,和相同的代码似乎工作在Windows上:qmenu无法在MAC上运行(Qt Creator)

#include <QtGui> 
#include "MyClass.h" 

MyClass::MyClass() 
{ 
// Create a menu 
    //QMainWindow::setMenuBar(new QMenuBar()); 
    QMenu* my_menu = new QMenu("&File", this); 
    menuBar()->addMenu(my_menu); 
} 

你有没有听说过这样的问题与Mac?

工具栏工作正常,但菜单没有。

编辑: 新代码:

#include <QtGui> 
#include "MMenu.h" 

MMenu::MMenu() 
{ 
    QMenu* fileMenu = new QMenu("&File", this); 
    QMenuBar *menuBar = new QMenuBar(0); 
    menuBar->addMenu(fileMenu); 
    //menuBar()->addMenu(fileMenu); 
} 

感谢

+0

Mac只有一个菜单栏。让我深入一些我的代码...我知道你可以使用它 – Robert

回答

1

首先,你可能有兴趣在addMenu(QString的)函数,该函数返回创建QMenu一步到位。

其次,尝试添加一些东西到菜单中。 Mac可能正在优化空菜单。但我知道这应该工作,我已经写了一个程序,在OSX上做得很好,以这种方式初始化菜单。

+0

感谢Robert,我在文档中发现了一些关于“Mac”窗口的消息,说我们应该在没有父母的情况下使用“QMenu”,但它仍然没有任何区别。我用新的代码更新了我的帖子,但不幸的是菜单栏仍然没有出现 – Paul

+0

嗨,罗伯特,好吧它实际上出现在我窗口的“顶部”,而不是在我的Qt窗口内,但在左上角苹果电脑! – Paul

+0

是的,这就是OSX菜单的工作原理。每个应用程序都有一个,它位于屏幕顶部的主菜单栏上。我不知道我甚至不知道任何具有窗口拥有菜单的“原生”OSX应用程序......它们都是X11应用程序或其他东西,并且像拇指拇指一样突出显示 – Robert

0
QMenu *fileMenu = QMainWindow::menuBar()->addMenu(tr("&File")); 
fileMenu->addAction(your_action); 
fileMenu->addAction(your_second_action); 
... 

在构造函数或任何你想要它。如果你只是想在你的主窗口运行之前看看它,只需做

fileMenu->exec();