QMainWindow::setMenuWidget()
can be used to set any widget as the main window's menu bar widget. Using an appropriate layout, you can use something like the following to customize the menu bar (MainWindowImpl
is a sub class of QMainWindow
):
void MainWindowImpl::setupMenubar() {
QWidget* menuWidget = new QWidget(this);
QGridLayout* menuWidgetLayout = new QGridLayout(menuWidget);
menuWidget->setLayout(menuWidgetLayout);
// Add the menu bar and all tool buttons to the widget
menuWidgetLayout->addWidget(theMenubar, 0, 0, 1,1);
menuWidgetLayout->addWidget(new QToolButton(), 0, 1, 1, 1);
menuWidgetLayout->addWidget(new QToolButton(), 0, 2, 1, 1);
// set the custom widget as the main window's menu widget
setMenuWidget(menuWidget);
}
theMenubar
points to the QMenuBar
which contains your application's main menu bar.