Stacking QPushButtons on the other side of a QMenuBar

梦想与她 提交于 2019-12-07 05:54:05

问题


I want to stack some QPushButton objects on the other side of my QMenuBar.

This is how my window looks now:

And this is how I want it to look like (I've photoshopped the image):

I know that in the motif widget style, the help menu is aligned to the right, but I'm sticking with plastique, so it's not a problem for me.

I'm using Qt4.8. Any ideas?


回答1:


QMenuBar has a setCornerWidget function, that sets a widget (that may include a whole layout) as the cornet widget.




回答2:


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.



来源:https://stackoverflow.com/questions/14645596/stacking-qpushbuttons-on-the-other-side-of-a-qmenubar

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!