QScrollArea类提供了滚动视图。滚动区域用于显示框架内子部件的内容。如果小部件超过了框架的大小,视图可以提供滚动条,以便可以查看子小部件的整个区域。子部件必须用setWidget()指定。
简单使用:
- QLabel *imageLabel = new QLabel;
- QImage image("C:\\Users\\Desktop\\image\\1.webp");
- imageLabel->setPixmap(QPixmap::fromImage(image));
-
- QScrollArea *scrollArea = new QScrollArea;
- scrollArea->setBackgroundRole(QPalette::Dark);
- scrollArea->setWidget(imageLabel);
-
- ui->verticalLayout->addWidget(scrollArea);
QWidget *widget() const | 获取滚动区域的部件 |
QWidget *takeWidget() | 移除滚动区域的小部件,并将小部件的所有权传递给调用者。 |
void ensureVisible(int x, int y, int xmargin = 50, int ymargin = 50) | 确保视口中的一定区域内容是可见 |
void setAlignment(Qt::Alignment) | 设置对齐方式 |
源码:
QScrollArea *scrollArea = new QScrollArea;
scrollArea->setBackgroundRole(QPalette::Dark); //设置背景色
QWidget *widget = new QWidget;
QVBoxLayout *layout = new QVBoxLayout; //设置垂直布局
widget->setLayout(layout);
QTextEdit *t1 = new QTextEdit(widget);
QTextEdit *t2 = new QTextEdit(widget);
QTextEdit *t3 = new QTextEdit(widget);
t1->setPlaceholderText("t1");
t2->setPlaceholderText("t2");
t3->setPlaceholderText("t3");
t1->setFixedHeight(300); //设置固定高
t2->setFixedHeight(300);
t3->setFixedHeight(300);
layout->addWidget(t1);
layout->addWidget(t2);
layout->addWidget(t3);
scrollArea->setWidget(widget);
ui->verticalLayout->addWidget(scrollArea);