当子部件超过窗口大小时,如何添加窗口滚动条,请给出编程示例
时间: 2023-05-21 16:02:04 浏览: 169
C# 自定义滚动条样式和多窗口切换
4星 · 用户满意度95%
可以使用QScrollArea类来实现窗口滚动条的添加,以下是一个简单的示例代码:
```cpp
#include <QApplication>
#include <QWidget>
#include <QScrollArea>
#include <QVBoxLayout>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget *widget = new QWidget;
QVBoxLayout *layout = new QVBoxLayout(widget);
// 添加多个子部件
for(int i = 0; i < 20; i++)
{
QPushButton *button = new QPushButton(QString("Button %1").arg(i));
layout->addWidget(button);
}
// 创建一个QScrollArea对象,并将widget设置为其子部件
QScrollArea *scrollArea = new QScrollArea;
scrollArea->setWidget(widget);
// 设置滚动条策略
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
// 显示QScrollArea对象
scrollArea->show();
return a.exec();
}
```
在上面的代码中,我们首先创建了一个QWidget对象,并向其中添加了多个QPushButton对象作为子部件。然后,我们创建了一个QScrollArea对象,并将QWidget对象设置为其子部件。最后,我们设置了滚动条的策略,并显示了QScrollArea对象。这样,当QWidget对象的子部件超过QScrollArea对象的大小时,就会自动出现滚动条。
阅读全文