EnergySpectrumAnalyer/src/BusyIndicator/BusyIndicator.cpp
2026-03-31 09:49:58 +08:00

41 lines
1.1 KiB
C++

#include "BusyIndicator.h"
#include <QLabel>
#include <QMovie>
#include <QVBoxLayout>
BusyIndicator::BusyIndicator(QWidget* parent)
: QWidget { parent }
{
setAttribute(Qt::WA_TransparentForMouseEvents);
QLabel* icon = new QLabel;
// icon->setMaximumSize(80, 80);
// QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
// icon->setSizePolicy(sizePolicy);
_busy_movie = new QMovie(":gif/BusyIndicator.gif"); // 转圈 GIF
_busy_movie->setScaledSize(QSize(50, 50));
icon->setMovie(_busy_movie);
_busy_movie->start();
QLabel* text = new QLabel(QStringLiteral(u"加载数据中......"));
QVBoxLayout* layout = new QVBoxLayout(this);
layout->addStretch();
layout->addWidget(icon, 0, Qt::AlignCenter);
layout->addWidget(text, 0, Qt::AlignCenter);
layout->addStretch();
setLayout(layout);
}
void BusyIndicator::Start()
{
_busy_movie->start();
this->setVisible(true);
this->update();
}
void BusyIndicator::Stop()
{
_busy_movie->stop();
this->setVisible(false);
this->update();
}