culturered_client/ProjectorDisplay/DisplayMovieWidget.cpp

64 lines
1.6 KiB
C++
Raw Normal View History

2024-09-07 03:34:44 +00:00
#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();
}
}