如何在QT中将ScrollArea调整到网格中?
我想将QScrollArea应用于网格的这一部分,其中包含名字,姓氏......
答案 0 :(得分:1)
以下是样本。 QSridLayout内部更改了QScrollArea的大小。
头文件
#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 ");
}
答案 1 :(得分:1)
QScrollArea是一个普通的小部件,其大小由包含它的布局控制。您可以通过调用resize方法来更改大小。
但是,如果您需要调整QScrollArea中包含的对象的大小,则应使用QScrollArea::widgetResizable属性。查看Image Viewer示例,了解QLabel如何与QScrollArea一起调整大小。