Qt:Mac 菜单栏的怪异之处
Posted
技术标签:
【中文标题】Qt:Mac 菜单栏的怪异之处【英文标题】:Qt: Weirdness with Mac MenuBars 【发布时间】:2012-02-17 22:04:44 【问题描述】:关于在 OSX Lion 上运行的 Qt 4.7.4,我观察到一种奇怪的行为。
我希望我的应用程序对所有窗口都有一个菜单栏。所以,我的应用程序保存并初始化了一个 QMenuBar 对象:
this->macMenuBar = new QMenuBar(0);
当我运行我的应用程序时,我会在菜单栏上看到我的应用程序的名称,就在苹果标志的右边,还有一些默认选项,如退出、服务-> 等...
我想在此菜单中添加两个新选项(在我的应用程序名称下)。所以我尝试在 QApplication 的构造函数中这样做。
this->macMenuBar->addAction(configurationAction);
this->macMenuBar->addAction(aboutMyAppAction);
这对菜单没有影响。它不会显示我的项目,尽管这两个操作都是有效的并且可以从停靠图标菜单工作)
然后,我决定一些根本没有意义但部分有效的东西。
QMenu * menu = this->macMenuBar->addMenu(("blah blah"));
menu->addAction(configurationAction);
menu->addAction(aboutMyApp);
现在将显示我的两个操作,“配置”和“关于”,并且没有任何名为“blah blah”的菜单项应该出现在这些操作下!
现在我决定添加另一行:
menu->addAction(loginAction);
那么我现在得到了什么? “preferences”和“about”在我的应用程序名称菜单项下方的菜单中,以及一个名为“blah blah”的新子菜单在其右侧,只有一个项目,我的 loginAction。
我真的很困惑。
为什么在添加第三个操作之前我没有得到“blah blah”***菜单项?
如何强制我的“loginAction”进入我的应用程序名称下的第一个***菜单?
【问题讨论】:
【参考方案1】:Qt 论坛中解决的问题:http://developer.qt.nokia.com/forums/viewthread/14610/
【讨论】:
那个论坛已经消失了,如果你在这里分享解决方案会很棒。以上是关于Qt:Mac 菜单栏的怪异之处的主要内容,如果未能解决你的问题,请参考以下文章
Python Qt GUI设计:菜单栏工具栏和状态栏的使用方法(拓展篇—2)