Укладка QPushButtons на другой стороне QMenuBar
Я хочу сложить некоторые QPushButton
объекты на другой стороне моего QMenuBar
,
Вот так выглядит мое окно:
И вот как я хочу, чтобы это выглядело (я сфотографировал изображение):
Я знаю что в motif
стиль виджета, меню справки выровнено вправо, но я придерживаюсь plastique
так что для меня это не проблема.
Я использую Qt4.8. Есть идеи?
2 ответа
QMenuBar имеет setCornerWidget
функция, которая устанавливает виджет (который может включать весь макет) в качестве виджета корнета.
QMainWindow::setMenuWidget()
может использоваться для установки любого виджета в качестве виджета панели меню главного окна. Используя соответствующий макет, вы можете использовать что-то вроде следующего, чтобы настроить строку меню (MainWindowImpl
это подкласс 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
указывает на QMenuBar
которая содержит строку главного меню вашего приложения.