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 に答える