它将帮助你把许多图片放在一个滚动,并将稳定其大小。
h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class QLabel;
class QScrollArea;
class FlowLayout;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
void setImagePaths(const QStringList& paths);
private:
QScrollArea* m_area;
QVector <QLabel*> m_imagesLab;
FlowLayout *flowLayout;
};
#endif // MAINWINDOW_H
.CPP文件
#include "mainwindow.h"
#include "flowlayout.h"
#include <QScrollArea>
#include <QLabel>
#include <QVBoxLayout>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
m_area = new QScrollArea(this);
m_area->setWidgetResizable(true);
flowLayout = new FlowLayout;
QWidget* widget = new QWidget(this);
widget->setLayout(flowLayout);
m_area->setWidget(widget);
setCentralWidget(m_area);
}
void MainWindow::setImagePaths(const QStringList &paths)
{
foreach (QString path, paths) {
QLabel* lab = new QLabel(this);
lab->setPixmap(path);
flowLayout->addWidget(lab);
m_imagesLab.push_back(lab);
}
}
MainWindow::~MainWindow()
{
}
flowlayout.h
和
flowlayout.cpp
您可以在QT示例中找到,
Flow Layout
示例显示如何为不同窗口排列小部件
尺寸。
Flow Layout实现处理不同窗口大小的布局。
小部件的位置根据应用程序的宽度而改变
窗口。