QT界面开发-窗口滚动条【转发】

转发自https://www.cnblogs.com/cppskill/p/10693889.html

1、代码的方式来创建 ScrollArea,然后使用 倒是 正常(有滚动条显示),但是此方式太麻烦 不如直接拖控件来的方便直观快捷。

 但是,直接拖控件的方式 ScrollArea中无法显示出 滚动条,怎么设置都没用...

 ZC:后来这样做 可以显示 滚动条了:(只是记录下操作,未了解其中原理)

 操作:

  (1)在主界面上拖一个 QScrollArea,设置主界面为 栅格布局

  (2)点击 scrollArea下面的scrollAreaWidgetContents(QWidget),对 scrollArea设置 minimumSize(把高度&宽度的值设置得大一点)  这样就可以看到 scrollArea的滚动条了

  PS:可以设置 scrollArea的属性 frameShape和frameShadow 来改变 滚动窗口的外观样式

2、代码创建的方式记录一下

1 MainWindow1::MainWindow1(QWidget *parent) :
2      QMainWindow(parent),
3      ui(new Ui::MainWindow1)
4 {
5      ui->setupUi(this);
6 }

在上面的构造函数中 添加 下面你的代码:

 1 //滚动区域
 2         QScrollArea *s = new QScrollArea(this);
 3         s->setFrameShadow(QFrame::Sunken);
 4         s->setGeometry(0, 0, 200, 200);
 5         //垂直滚动条不可见,只能通过鼠标滑动
 6 //        s->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
 7 
 8         //窗体1,其父窗体为滚动区域
 9         QWidget *w = new QWidget(s);
10         //设置滚动区域的窗体
11         s->setWidget(w);
12         w->setGeometry(0, 0, 300, 300);
13 
14         //在窗体1上添加按钮
15         QPushButton *btn = new QPushButton(w);
16         btn->setText("123");
17         btn->move(230, 130);
原文地址:https://www.cnblogs.com/nxopen2018/p/12206161.html