我已经用Qt creator创建了一个菜单栏和一些菜单。必须对其中一个菜单进行编码才能使用QActionGroup功能。现在很容易通过以下命令将我的自定义菜单添加到菜单栏中:
printMenu = menuBar()->addMenu(tr("&Print"));但我的菜单将在菜单栏的最后位置。如何在指定位置添加菜单?(例如,文件菜单后的第二个位置)
问候
发布于 2010-06-15 17:43:10
将QMenuBar::insertMenu与QMenu::menuAction结合使用。
例如,如果你想在“帮助”菜单之前的位置动态插入“打印”菜单,你可以这样做:
QMenu *printMenu = new QMenu(tr("&Print"));
menuBar()->insertMenu(ui->menuHelp->menuAction(), printMenu);发布于 2010-06-15 17:49:50
如果你想在菜单栏中间添加一个子菜单,这可不是小菜一碟。没有直接的应用程序接口可以做到这一点,但是你可以通过操纵QWidget的内部操作(QMenu::addMenu只是调用QWidget::addAction(menu->menuAction())。
理论上,您可以操作QMenuBar::actions(),但我从未这样做过。
当我不得不处理这个问题时,我只是从另一个数据集中重建了菜单(在您最喜欢的qmdilib搜索引擎中查找,您将看到我的解决方案)。
https://stackoverflow.com/questions/3044000
复制相似问题