0

我想设计一个可滚动的“控件容器”小部件。意思是,一个可以包含实时控件(任何 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);
4

1 回答 1

0

基本上,这就足够了。使用具体的 QScrollArea 类和通用容器小部件,然后将控件定位为容器的子级。

QScrollArea scrollArea;
QWidget container;

// Create controls and add them to container.

scrollArea.setWidget( &container );
于 2012-05-29T21:30:44.680 回答