Укладка 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 которая содержит строку главного меню вашего приложения.

Другие вопросы по тегам