我很难在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();
}
为什么它不会出现在菜单栏上的任何想法? 谢谢大家。
答案 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