Qt551.窗口滚动条

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);

 

3、

4、

5、

 

MainWindow1::MainWindow1(QWidget*parent):
QMainWindow(parent),
ui(newUi::MainWindow1)
{
ui->setupUi(this);


//滚动区域
QScrollArea*s=newQScrollArea(this);
s->setFrameShadow(QFrame::Sunken);
s->setGeometry(0,0,200,200);
//垂直滚动条不可见,只能通过鼠标滑动
//s->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

//窗体1,其父窗体为滚动区域
QWidget*w=newQWidget(s);
//设置滚动区域的窗体
s->setWidget(w);
w->setGeometry(0,0,300,300);

//在窗体1上添加按钮
QPushButton*btn=newQPushButton(w);
btn->setText("123");
btn->move(230,130);

}
posted @ 2019-04-12 08:49  CppSkill  阅读(2133)  评论(0编辑  收藏  举报