fitモードテスト実装。
1 parent b41a056 commit db203955ae4a186f45510924f61d1979bdcebb8d
@TAM (Teppei Tamra) TAM (Teppei Tamra) authored on 8 Jan 2019
Showing 3 changed files
View
31
saorimediaview.cpp
***/
 
#include "saorimediaview.h"
#include "ui_saorimediaview.h"
#include <QSize>
#include <QDebug>
 
SaoriMediaView::SaoriMediaView(QWidget *parent) :
QWidget(parent),
ui(new Ui::SaoriMediaView)
{
ui->setupUi(this);
m_fit = true;
}
 
SaoriMediaView::~SaoriMediaView()
{
}
 
void SaoriMediaView::setImage(QImage image)
{
ui->media->setPixmap(QPixmap::fromImage(image));
m_image = image;
ui->media->setPixmap(QPixmap::fromImage(m_image));
ui->scrollArea->setWidgetResizable(true);
ui->media->adjustSize();
if (m_fit) fit();
}
 
void SaoriMediaView::setUrls(QList<const QUrl> urls, uint current)
void SaoriMediaView::setUrls(QList<QUrl> urls, uint current)
{
m_mediaList = urls;
m_currentMedia = current;
}
 
void SaoriMediaView::fit()
{
// FIXME この式正しいか?
QSize s = ui->scrollArea->size() - ui->scrollArea->sizeHint();
ui->media->setPixmap(QPixmap::fromImage((m_image.scaled(s,Qt::KeepAspectRatio,Qt::SmoothTransformation))));
ui->media->adjustSize();
qDebug () << ui->scrollArea->size();
qDebug () << ui->scrollArea->frameWidth();
}
 
void SaoriMediaView::resizeEvent(QResizeEvent *event)
{
QWidget::resizeEvent(event);
if(m_fit) fit();
}
View
15
saorimediaview.h
#include <QWidget>
#include <QList>
#include <QMap>
#include <QImage>
#include <QUrl>
 
namespace Ui {
class SaoriMediaView;
}
explicit SaoriMediaView(QWidget *parent = nullptr);
~SaoriMediaView();
 
void setImage(QImage image);
void setUrls(QList<const QUrl> urls,uint current);
void setUrls(QList<QUrl> urls,uint current);
 
protected:
QList<const QUrl> m_mediaList;
void fit();
virtual void resizeEvent(QResizeEvent *event);
 
protected:
QList<QUrl> m_mediaList;
uint m_currentMedia;
bool m_fit;
QImage m_image;
 
private:
Ui::SaoriMediaView *ui;
};
View
3
■■
saorimediaview.ui
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustIgnored</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">