在QMenuBar的另一侧堆叠QPushButtons

时间:2013-02-01 11:45:50

标签: qt qt4 qt4.8 qpushbutton qmenubar

我想在QPushButton的另一侧堆叠一些QMenuBar个对象。

这就是我的窗口现在的样子: how it looks

这就是我想要它的样子(我已经对照片进行了图片处理): how i want it to look

我知道在motif小部件样式中,帮助菜单与右侧对齐,但我坚持使用plastique,所以这对我来说不是问题。

我正在使用Qt4.8。有什么想法吗?

2 个答案:

答案 0 :(得分:9)

QMenuBar有一个setCornerWidget函数,可以将小部件(可能包含整个布局)设置为短号小部件。

答案 1 :(得分:2)

QMainWindow::setMenuWidget()可用于将任何窗口小部件设置为主窗口的菜单栏窗口小部件。使用适当的布局,您可以使用以下内容来自定义菜单栏(MainWindowImplQMainWindow的子类):

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