Qt 设计师中使用QScrollArea控件

Qt 设计师中使用QScrollArea控件

具体参考:https://www.xuebuyuan.com/2052139.html
在QtDesigner拖一个Scroll Area控件到窗口中会生成 scrollArea
和scrollAreaWidgetContents 这两个部件。
其中scrollAreaWidgetContents 是scrollArea 的子部件,它是个空的QWidget
我们把要实现滚动条效果的目标控件拖到scrollArea
里,使其成为scrollAreaWidgetContents 的子部件。
然后调整scrollAreaWidgetContents

的尺寸为需要的尺寸,切记不要用resize() 而是用setFixedSize () 。
然后调整目标控件的位置大小,可以用
setGeometry(0,0,w,h),使其左上角对齐scrollAreaWidgetContents 。
现在就可以编译运行看效果了。
我的步骤:

  1. 在QtDesigner拖一个Scroll Area控件到窗口中会生成 scrollArea
    和scrollAreaWidgetContents 这两个部件
  2. 把要实现滚动条效果的目标控件拖到scrollArea
    里,使其成为scrollAreaWidgetContents 的子部件。
  3. 我们在界面上看到的是scrollArea的大小,当scrollAreaWidgetContents的值大于Scroll Area时滚动条就会出现,拖动滚动条就ok了。
  4. 总之我们能再窗体上看到的是Scroll Area的大小,但是实际大小由scrollAreaWidgetContents决定,当scrollAreaWidgetContents的值大于Scroll Area时滚动条就会出现,拖动滚动条就ok了。
    示例代码:

#include “mainwindow.h”
#include “ui_mainwindow.h”

int plabel_x = 0;
int plabel_y = 0;
const int plabel_width = 50;
const int plabel_height = 100;

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

QPalette palette = ui->widget->palette();
palette.setBrush(QPalette::Window,QBrush(QColor(61,61,61)));
ui->widget->setAutoFillBackground(true);
ui->widget->setPalette(palette);

ui->widget->resize(500,100);
ui->scrollArea->resize(500,100);
updatewidget();

}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::updatewidget()
{
ui->scrollAreaWidgetContents->setFixedSize(550,100);
QLabel *plabel = new QLabel(ui->scrollAreaWidgetContents);
plabel->setGeometry(500,0,50,100);
plabel->resize(50,100);
QString a = “123456”;
plabel->setText(a);
plabel->show();
}

猜你喜欢

转载自blog.csdn.net/u012581284/article/details/84635576