1
0
mirror of https://gitee.com/drabel/LibQQt.git synced 2025-01-04 10:18:44 +08:00
LibQQt/qqtwidget.cpp

52 lines
1.3 KiB
C++
Raw Normal View History

2016-12-29 16:49:18 +08:00
#include "qqtwidget.h"
#include "ui_qqtwidget.h"
#include <QStylePainter>
#include "qqtdefine.h"
QQTWidget::QQTWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::QQTWidget)
{
ui->setupUi(this);
m_type = QQTCENTER;
}
QQTWidget::~QQTWidget()
{
delete ui;
}
void QQTWidget::setPixmap(QString pic)
{
m_pic = pic;
}
void QQTWidget::paintEvent(QPaintEvent *)
{
QStylePainter p(this);
if(m_pic.isEmpty())
return;
QImage image(m_pic);
switch (m_type) {
case QQTCENTER:
p.drawItemPixmap(rect(), Qt::AlignCenter, QIcon(m_pic).pixmap(rect().size(), QIcon::Normal, QIcon::On));
break;
case QQTTILEDWIDTH:
//会产生label的效果左右按照rect长但是不缩放形状
p.drawItemPixmap(rect(), Qt::AlignLeft | Qt::AlignTop,
QPixmap::fromImage(image.copy(rect())
.scaledToWidth(rect().width())
));
break;
case QQTZOOMWIDTH:
p.drawItemPixmap(rect(), Qt::AlignLeft | Qt::AlignTop,
QPixmap::fromImage(image
.scaled(rect().width(), image.height(), Qt::IgnoreAspectRatio)
));
break;
default:
break;
}
}