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