#include "DisplayMovieWidget.h" #include #include #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(); } }