Как вписать ScrollArea в Grid в QT? - PullRequest
1 голос
/ 17 июня 2011

Как вписать ScrollArea в Grid в QT?

Я хочу применить QScrollArea к той части сетки, которая содержит имя, фамилию ...

Ответы [ 2 ]

1 голос
/ 17 июня 2011

QScrollArea - это обычный виджет, и его размер контролируется макетом, который его содержит. Вы можете изменить его размер, вызвав метод resize .

Однако, если вам нужно изменить размер объекта, содержащегося в QScrollArea, вы должны использовать свойство QScrollArea :: widgetResizable . Посмотрите на пример Image Viewer , чтобы узнать, как изменяется размер QLabel вместе с QScrollArea.

1 голос
/ 17 июня 2011

Вот образец.Размер QScrollArea изменяется внутри QGridLayout.

заголовочный файл

#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui/QWidget>
#include <QScrollArea>
#include <QTextEdit>
#include <QPushButton>
#include <QGridLayout>

class Widget: public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

private:
    QScrollArea *sca;
    QTextEdit *txt;
    QPushButton *btn;

private slots:
    void onClicked();
};

#endif // WIDGET_H

исходный файл

#include "widget.h"
#include <QScrollBar>

Mediator::Widget(QWidget *parent)
    : QWidget(parent)
{
    sca = new QScrollArea(this);
    txt = new QTextEdit;
    txt->setFixedSize(1000,500);
    btn = new QPushButton("Button",this);
    btn->setFixedSize(75,30);

    QGridLayout *layout = new QGridLayout;
    layout->addWidget(sca);
    layout->addWidget(btn);

    sca->setWidget(txt);

    setLayout(layout);

    connect(btn,SIGNAL(clicked()),this,SLOT(onClicked()));
}

Widget::~Widget()
{

}

void Widget::onClicked()
{
    txt->setText(txt->toPlainText() + "abcd ");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...