如何使QToolButton超出QToolbar的边缘?

如何使QToolButton超出QToolbar的边缘?,qt,qtstylesheets,qtoolbar,Qt,Qtstylesheets,Qtoolbar,我怎样才能使按钮超出边缘 下面是我创建工具栏时的代码: 主窗口 class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0) private: QToolBar* _toolBar; }; mainwindow.cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {

我怎样才能使按钮超出边缘

下面是我创建工具栏时的代码:

主窗口

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    MainWindow(QWidget *parent = 0)

private:
    QToolBar* _toolBar;
};
mainwindow.cpp

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent)
{
   _toolBar = new QToolBar;
   QAction *actionAdd = new QAction(QIcon(":/images/add.png"), "", this);
   _toolBar->addAction(actionAdd);

    addToolBar(Qt::ToolBarArea::TopToolBarArea, _toolBar);

}
style.qss

QToolBar {
    background: #018ac4;
    height: 150px;

}

使用小部件是不可能的。QWidget不能在其区域外绘制。请参阅以下答案:

但是,QToolBar实际上不是QAction的父对象,因为它不拥有所有权。因此,也许QMainWindow可以按照您想要的方式绘制QAction,但这在Qt的公共API中是不可行的


您可以使用QML,但您需要对整个窗口使用QML。

如前所述,使用QtWidgets无法正确解决此问题。 但是,我看到了两种视觉效果的选择:

将按钮从工具栏中取出,并将其添加到主窗口中,但不要将其添加到布局中。通常我会说,在调整大小事件时重新定位它,但由于它位于左上角,您最好在启动时调用setGeometry一次,以后不用担心它。你可能得加上最后一个,或者叫瑞斯

让它看起来像按钮伸出,而实际上它并没有。使工具栏与按钮一样大,但将工具栏的下部绘制为明亮的蓝色,使其看起来像是其下方小部件的一部分


如果你发布一些关于你是如何做这些事情的代码,这会很有帮助。我添加了一些代码,很可能是关于样式的。我无法使用给定的代码将其显示在我的项目中。你在github或其他网站上有这个项目吗?如果你愿意,我可以看一下。我不认为你可以用那种方式组成你的工具栏,也就是说,在父控件的边界之外绘制子控件。唯一的方法是使按钮独立并覆盖在工具栏上。应该是一个很好的参考,使一个专业的看法