在QMenuBar的另一侧堆叠QPushButtons

7
我想在我的QMenuBar另一侧堆叠一些QPushButton对象。
这是我的窗口目前的样子: how it looks 这是我想要的样子(图片经过了Photoshop处理): how i want it to look 我知道在motif小部件样式中,帮助菜单对齐到右侧,但我坚持使用plastique,所以对我不是问题。
我正在使用Qt4.8。有什么想法吗?

也许不要使用菜单栏,而是使用只有文本按钮的工具栏。 - ypnos
2个回答

11

QMenuBar有一个 setCornerWidget 函数,可将窗口小部件(可能包含整个布局)设置为角落窗口小部件。


3

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


太好了,我不知道这个方法 - 我之前使用的是我的方法,当我想在菜单区域内添加一些按钮时,但是在菜单项下面。当按钮应该在菜单项的右侧或左侧时,您的方法确实更简单。接受您自己的答案,我认为您可以获得徽章 :) - Andreas Fester

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接