Как отобразить gif с меткой, которая находится в другом пользовательском интерфейсе в qt
Привет,
У меня есть требование, чтобы отобразить GIF с этикеткой(с widget.cpp). Метка присутствует в другом пользовательском интерфейсе(displayads.ui). Я могу отобразить изображение с этой меткой, но gif не отображается. Изображение & gif, которое я назначаю из widget.cpp. displayads.пользовательский интерфейс содержит две метки, одну для отображения изображений и одну для отображения gif. Для этого я прокомментировал Ui::displayads *ui & деструктор из displayads.h & displayads.cpp-да. Код приведен ниже.
Я закрываю этот objdispads через 3 секунды, но мое требование состоит в том, чтобы закрыть его из другой функции виджета. Не могли бы вы помочь мне отобразить GIF и закрыть этот objdispads из другой функции.
Что я уже пробовал:
Как уже упоминалось выше
Widget.cpp
///////////// for image display ////////////// void Widget::Displayads() { displayads *objdispads = new displayads(this); QPixmap pix1("/root/img.png"); objdispads->ui->adlabel1->setPixmap(pix1); objdispads->ui->adlabel1->setScaledContents( true ); objdispads->ui->adlabel1->setSizePolicy( QSizePolicy::Ignored, QSizePolicy::Ignored ); ////////// code for gif display ///////// QMovie *movie = new QMovie("/root/swachbt.gif"); if (!movie->isValid()) { qDebug()<<"Movie is Inavlid"; } objdispads->ui->adlabel2->setMovie(movie); movie->start(); objdispads->show(); QCoreApplication::processEvents(); QCoreApplication::processEvents(); sleep(3); objdispads->close(); objdispads->deleteLater(); }
displayads.cpp
#include "displayads.h" #include "ui_displayads.h" displayads::displayads(QWidget *parent) : QWidget(parent), ui(new Ui::displayads) { ui->setupUi(this); this->setWindowFlags(Qt::FramelessWindowHint); ui->adlabel1->setAutoFillBackground(true); // ui->adlabel2->setAutoFillBackground(true); } //displayads::~displayads() //{ // delete ui; //}
displayads.ч
#ifndef DISPLAYADS_H #define DISPLAYADS_H #include <qwidget> namespace Ui { class displayads; } class displayads : public QWidget { Q_OBJECT public: explicit displayads(QWidget *parent = 0); Ui::displayads *ui; // ~displayads(); private: // Ui::displayads *ui; }; #endif // DISPLAYADS_H