64 lines
1.6 KiB
C++
64 lines
1.6 KiB
C++
#include "DisplayMovieWidget.h"
|
|
|
|
#include <QApplication>
|
|
#include <QDir>
|
|
|
|
#include "BackgroundWidget.h"
|
|
|
|
|
|
#include "ui_DisplayMovieWidget.h"
|
|
|
|
DisplayMovieWidget* displayWidget = nullptr;
|
|
|
|
DisplayMovieWidget& DisplayMovieWidget::Get() {
|
|
return *displayWidget;
|
|
}
|
|
|
|
DisplayMovieWidget::DisplayMovieWidget(QWidget *parent) :
|
|
ScreenWidget(parent),
|
|
ui(new Ui::DisplayMovieWidget) {
|
|
displayWidget = this;
|
|
ui->setupUi(this);
|
|
|
|
InitMaskPixmaps();
|
|
|
|
m_movieWidgets.append(ui->baclgrpimd_widget);
|
|
m_movieWidgets.append(ui->whiteblack_widget);
|
|
|
|
connect(&m_timer, &QTimer::timeout, this, &DisplayMovieWidget::OnTimeout);
|
|
m_timer.start(1000 / 25);
|
|
}
|
|
|
|
DisplayMovieWidget::~DisplayMovieWidget() {
|
|
delete ui;
|
|
displayWidget = nullptr;
|
|
}
|
|
|
|
void DisplayMovieWidget::InitMaskPixmaps() {
|
|
const QString imageDir = QApplication::applicationDirPath() + "/ProjectDisplay/mask";
|
|
|
|
QStringList jpgFiles;
|
|
|
|
QDir dir(imageDir);
|
|
QStringList filters;
|
|
filters << "*.jpg"; // 添加 JPG 的文件扩展名
|
|
QFileInfoList fileInfoList = dir.entryInfoList(filters, QDir::Files); // 使用过滤器获取文件列表
|
|
|
|
foreach(const QFileInfo & fileInfo, fileInfoList) {
|
|
m_pixmapPaths.append(fileInfo.absoluteFilePath());
|
|
|
|
}
|
|
}
|
|
|
|
void DisplayMovieWidget::OnTimeout() {
|
|
if (m_pixmaps.count() < m_pixmapPaths.count()) {
|
|
QPixmap pixmap(m_pixmapPaths[m_pixmaps.count()]); // 获取文件的绝对路径
|
|
m_pixmaps.emplace_back(std::move(pixmap));
|
|
}
|
|
|
|
for (auto widget : m_movieWidgets) {
|
|
widget->OnTimeout();
|
|
}
|
|
}
|
|
|