我想设计一个可滚动的“控件容器”小部件。意思是,一个可以包含实时控件(任何 QWidget 衍生品)的可滚动视图。通过“实时控件”,我的意思是,如果将派生的动画 QWidget 放置在其中,我希望看到动画,因为我上下滚动,而子控件上下移动。
将这样的小部件基于“QAbstractScrollArea”是处理它的正确方法吗?我只是将控件添加为孩子?将它们放在一列中?这样就够了吗?
编辑:
这是我的 QAbstractScrollArea 派生类的构造函数代码。为什么我从来没有看到可以滚动控件的滚动条?(根据我控制的高度,并非所有内容都在同一页面上可见)
// add controls
QPushButton *a = new QPushButton(QString("a"), this);
a->setGeometry(QRect(10,10,100,30));
QPushButton *b = new QPushButton(QString("b"), this);
b->setGeometry(QRect(10,40,100,30));
QPushButton *c = new QPushButton(QString("c"), this);
c->setGeometry(QRect(10,70,100,30));
QPushButton *d = new QPushButton(QString("d"), this);
d->setGeometry(QRect(10,100,100,30));
QPushButton *e = new QPushButton(QString("e"), this);
e->setGeometry(QRect(10,130,100,30));
QPushButton *f = new QPushButton(QString("f"), this);
f->setGeometry(QRect(10,160,100,30));
QPushButton *g = new QPushButton(QString("g"), this);
g->setGeometry(QRect(10,190,100,30));
QPushButton *h = new QPushButton(QString("h"), this);
h->setGeometry(QRect(10,220,100,30));
this->addScrollBarWidget(new QScrollBar(this), Qt::AlignRight);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);