代码拉取完成,页面将自动刷新
#include "animatedgifitem.h"
AnimatedGifItem::AnimatedGifItem(const QString &fileName, QGraphicsItem *parent)
: UICanvasItemBase(parent), movie(new QMovie(fileName))
{
QObject::connect(movie, &QMovie::frameChanged, [this](int /*frame*/)
{
// 在每个新帧上触发重绘
this->update(); });
movie->start();
// this->setScale(5.0);
this->setY(1000);
this->setX(500);
}
AnimatedGifItem::~AnimatedGifItem()
{
delete movie;
}
QRectF AnimatedGifItem::boundingRect() const
{
return movie->currentPixmap().rect();
}
void AnimatedGifItem::customPaint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
auto pixmap = movie->currentPixmap();
// QPixmap scaledPixmap = pixmap.scaled(1000, 1000, Qt::KeepAspectRatio, Qt::SmoothTransformation);
painter->drawPixmap(0, 0, pixmap.width()*5, pixmap.height(), pixmap);
}
// void AnimatedGifItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
// {
// Q_UNUSED(option);
// Q_UNUSED(widget);
// auto pixmap = movie->currentPixmap();
// // QPixmap scaledPixmap = pixmap.scaled(1000, 1000, Qt::KeepAspectRatio, Qt::SmoothTransformation);
// painter->drawPixmap(0, 0, pixmap);
// // this->update();
// }
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。