软件启动过程中、页面加载以及一些特效展示中我们经常会用到一些动态图的方式提交软件交互体验,下边介绍项目中如何实现。
这里我们采用QMovie的方式:
#include "DynamicWidget.h"
#include "ui_DynamicWidget.h"
DynamicWidget::DynamicWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::DynamicWidget)
, m_pMovie(NULL)
{
ui->setupUi(this);
this->setWindowFlags(Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_DeleteOnClose,false);
}
DynamicWidget::~DynamicWidget()
{
delete ui;
}
void DynamicWidget::start(const QString &file)
{
if (!m_pMovie) {
m_pMovie = new QMovie(this);
ui->label->setMovie(m_pMovie);
}
// m_pMovie->stop();
m_pMovie->setFileName(file);
m_pMovie->start();
}
void DynamicWidget::stop()
{
if (m_pMovie) {
m_pMovie->stop();
}
this->hide();
}
调用方式:m_pDynamicWidget->start(QApplication::applicationDirPath() + "/res/loading.gif");