QT 用代码新建一个QScrollArea并添加两个子元素
时间: 2024-02-18 10:59:41 浏览: 79
基于QT的UI元素
好的,以下是实现的代码:
```cpp
#include <QtWidgets/QApplication>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QScrollArea>
#include <QtWidgets/QWidget>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QVBoxLayout>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow window;
// 新建QScrollArea控件
QScrollArea* scrollArea = new QScrollArea(&window);
scrollArea->setWidgetResizable(true);
// 新建QWidget控件作为QScrollArea的子控件
QWidget* scrollWidget = new QWidget(scrollArea);
QVBoxLayout* layout = new QVBoxLayout(scrollWidget);
// 添加子元素
QLabel* label1 = new QLabel("Label 1", scrollWidget);
layout->addWidget(label1);
QLineEdit* edit1 = new QLineEdit(scrollWidget);
layout->addWidget(edit1);
// 添加第二个子元素
QLabel* label2 = new QLabel("Label 2", scrollWidget);
layout->addWidget(label2);
QLineEdit* edit2 = new QLineEdit(scrollWidget);
layout->addWidget(edit2);
// 设置QWidget的大小
scrollWidget->setFixedSize(500, 600);
// 将QWidget设置为QScrollArea的子控件
scrollArea->setWidget(scrollWidget);
// 显示窗口
window.setCentralWidget(scrollArea);
window.show();
return a.exec();
}
```
这个代码会创建一个新的QScrollArea控件,并向其中添加两个子元素(一个QLabel和一个QLineEdit)。QWidget控件作为QScrollArea的子控件,用QVBoxLayout布局管理器来添加子元素。QWidget的大小设置为500x600,足够大以激活QScrollArea的滚动条。最后,将QWidget设置为QScrollArea的子控件,然后将QScrollArea设置为QMainWindow的中心控件以显示窗口。
希望这个代码可以帮助你解决问题,如果还有其他问题,请随时提问。
阅读全文