首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QWidget怎么做出滚动条的效果,

2012-05-28 
QWidget如何做出滚动条的效果,?例如,拖拉一下,将另外两个钮显示出来?C/C++ codeMainWindow::MainWindow(QW

QWidget如何做出滚动条的效果,?
例如,拖拉一下,将另外两个钮显示出来?

C/C++ code
MainWindow::MainWindow(QWidget *parent)    : QMainWindow(parent){    setFixedSize(300, 100);    move(500, 300);    QPushButton *pBtn0 = new QPushButton("btn0", this);    //pBtn0->setFocusPolicy(Qt::NoFocus);    pBtn0->setFixedSize(50, 50);    pBtn0->move(50, 50);    QPushButton *pBtn1 = new QPushButton("btn1", this);    //pBtn1->setFocusPolicy(Qt::NoFocus);    pBtn1->setFixedSize(50, 50);    pBtn1->move(100+1, 50);    QPushButton *pBtn2 = new QPushButton("btn2", this);    //pBtn2->setFocusPolicy(Qt::NoFocus);    pBtn2->setFixedSize(50, 50);    pBtn2->move(50, 100+1);    QPushButton *pBtn3 = new QPushButton("btn3", this);    //pBtn3->setFocusPolicy(Qt::NoFocus);    pBtn3->setFixedSize(50, 50);    pBtn3->move(100+1, 100+1);    QLine *pLine = new QLine();    pLine->setLine(100, 100-10, 200, 100-10);}


[解决办法]
要是用滚动区域来做的话就比较简单了,其实就是三个widget叠加在一起(滚动区域是一个特殊的widget)
第一层就是你的固定大小的显示界面,中间一层就是滚动区域,第三层是你用来加载控件的widget,比如说你的一些控件超出了主界面的大小,这肯定是要有另外一个widget来加载的,不是凭空就能显示的,明白我的意思了吧,这里实际上你的主界面就只是一个窗口的作用了,实际完成加载控件的是第三层widget。
具体例子的话很简单:
QScrollArea *areaWidget = new QScrollArea(QWidget *patent);
areaWidget->setWidget(widget_3);

这样就搞定了,new的时候可以指定parent是你的mainwindow主界面,不指定的话就用个layout
setWidget的时候参数是你实际加载控件的那个widget,你就把它当做一个普通的widget就好理解了
滚动区域封装好了滚动条,不用你再去单独的计算滚动条的比例什么的,非常的好用
看在这么辛苦的份上,楼主记得给分啊

热点排行