第一种方式
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
movie = new QMovie(":/image.gif");
// ui->label->setText("hello");
// ui->label->setMovie(movie);
movie->start();
// 更新间隔
startTimer(20);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
movie->stop();
}
void MainWindow::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
// 获取当前帧的 Pixmap
QPixmap pixmap = movie->currentPixmap();
// 获取 GIF 的原始大小
QSize gifSize = pixmap.size();
// 计算中心位置,使 GIF 居中显示
int x = (width() - gifSize.width()) / 2;
int y = (height() - gifSize.height()) / 2;
// 按照 GIF 的原始大小绘制
painter.drawPixmap(x, y, pixmap);
}
void MainWindow::timerEvent(QTimerEvent *event)
{
update();
}
第二种
ui->label->setText("hello");
ui->label->setMovie(movie);