QPushButton *button1 = new QPushButton();
QHBoxLayout *hLayout = new QHBoxLayout(this);
//QPoint point = this->horizontalScrollBar()->pos();
hLayout->addWidget(button1);
hLayout->addWidget(this->horizontalScrollBar());
hLayout->setGeometry(this->horizontalScrollBar()->geometry());
试试这个?
// 创建QWidget用于放置按钮和滑动条
QWidget* widget = new QWidget(this);
QHBoxLayout* layout = new QHBoxLayout(widget);
// 创建按钮
QPushButton* button1 = new QPushButton("Button 1");
QPushButton* button2 = new QPushButton("Button 2");
// 将按钮添加到布局中
layout->addWidget(button1);
layout->addWidget(button2);
// 获取QGraphicsView的水平滑动条
QScrollBar* horizontalScrollBar = this->horizontalScrollBar();
// 设置QWidget的大小和位置与滑动条相同,使其显示在底部滑动条的位置
QRect rect = horizontalScrollBar->geometry();
widget->setGeometry(rect);
// 将QWidget设置为QGraphicsView的viewport,这样它就会显示在底部滑动条的位置
this->setViewport(widget);
QGraphicsLinearLayout试一下,可实现自动布局,参考文章
https://blog.csdn.net/hitzsf/article/details/114600939
我可以为您提供一个解决方案,您可以在QGraphicsView底部滑动条位置添加按钮。您可以通过自定义QGraphicsView的子类并重写resizeEvent()函数来实现。
下面是具体的解决方案:
class CustomGraphicsView : public QGraphicsView
{
Q_OBJECT
protected:
void resizeEvent(QResizeEvent *event) override
{
QGraphicsView::resizeEvent(event);
QSize viewSize = viewport()->size();
// 创建和定位按钮
QPushButton *button1 = new QPushButton(viewport());
button1->setText("Button 1");
button1->move(viewSize.width() - button1->sizeHint().width(), viewSize.height() - button1->sizeHint().height());
QPushButton *button2 = new QPushButton(viewport());
button2->setText("Button 2");
button2->move(viewSize.width() - button2->sizeHint().width() - button1->sizeHint().width() - 5, viewSize.height() - button2->sizeHint().height());
}
};
CustomGraphicsView *graphicsView = new CustomGraphicsView(this);
setCentralWidget(graphicsView);
现在,当您调整QGraphicsView的大小时,按钮将一直位于底部滑动条位置。
请注意,将按钮添加到QGraphicsView的底部滑动条位置只是一个示例,您可以根据您的需求自定义按钮的类型和位置。
希望这可以帮助到您!如果您有任何其他问题,请随时提问。
使用自定义widget,你自己继承qprocessbar然后对类进行布局添加qpushbutton就行