滚动区域中的大小调整问题

resize problem in scroll area

本文关键字:调整 问题 区域 滚动      更新时间:2023-10-16

大家好,这是我的代码:

myplot *p = new myplot(gao.structpayloadgraph, 
                       gao1.structpayloadgraph, 
                       gao.structcol-2, "payload");
ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
ui->scrollArea->setWidgetResizable(false);
p->resize(ui->scrollArea->size().width(), ui->scrollArea->size().height());
ui->scrollArea->setWidget(p);

我希望p占据滚动条区域的全部可用空间并适合自己。然而,即使我调用了resize函数,外观看起来还是"被挤压"了。我应该怎么做才能达到预期的效果?

您必须将滚动区域内容小部件视为普通的QWidget。如果您想要自动调整大小,并且必须使用Qt中的布局。尝试以下操作:

QVBoxLayout layout = new QVBoxLayout( ui->scrollAreaContent);
layout->setMargin(0);
layout->setContentsMargins(0,0,0,0);
layout->setSpacing(0);
ui->scrollAreaContent->setLayout( layout);
layout->addWidget(p);

注意:ui->scrollAreaContent只是猜测,但我认为您使用的是ui文件,默认内容小部件的名称是这样的。。。

转到QT创建者设计器屏幕(对象、类)的右上角,右键单击QScrollArea行并选择"布局"菜单项,选择布局(如垂直或水平布局),确保您的QWidget具有最小或更大的大小策略。您的滚动小部件现在应该根据布局调整大小。