2015-06-09 3 views
1

Я создал ярлык в форме UI, и я хотел бы, чтобы он отображал GIF, используя код в main. Это то, что у меня есть до сих пор, но я не уверен, что поставить вместо «???????». Как я могу сделать этот ярлык отображением GIF?C++ Qt Как вы создаете ярлык с изображением фильма (gif), созданного с помощью формы?

#include "dialog.h" 
#include <QApplication> 
#include <QMovie> 
#include <QLabel> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    Dialog w; 

    QMovie *movie = new QMovie(":/Gifs/Welcome_animation2.gif"); 
    QLabel *lblMovie = new QLabel(); 
    lblMovie->setMovie(??????????); 
    movie->start(); 

    w.show(); 
    return a.exec(); 
} 
+1

Согласно [документации] (http://doc.qt.io/qt-4.8/qlabel.html#setMovie), вы будете 'lblMovie- > setMovie (movie); ' – CoryKramer

ответ

2

Как указано CoryKramer, вы должны использовать только lblMovie->setMovie(movie). Однако проблема заключается в том, что вы не устанавливаете фильм в правильный QLabel (т. Е. LblMovie - это не тот объект, который показан в вашем окне) Возможно, вам нужно создать QMovie внутри вашего класса Dialog, и там вы установите фильм в QLabel, используя ui->lblMovie->setMovie(movie). Если он действительно должен быть создан снаружи, вы должны добавить общедоступный метод, чтобы разрешить его. Посмотрите на http://doc.qt.io/qt-5/gettingstartedqt.html для получения дополнительной информации о правильном использовании ui-файлов

+0

Или вместо того, чтобы делать что-то вроде' w.ui-> lblMovie-> setMovie (movie) ', создать объект' QMovie' внутри класса 'Dialog' и установить его в метку внутри этого класса , Ведь переменная 'ui' является закрытой по умолчанию (как и должно быть). Другой вариант - использовать функцию внутри класса «Диалог», которая принимает указатель «QMovie» в качестве параметра и устанавливает его на метку. – thuga

+0

да, это лучше. Я изменил ответ, чтобы лучше отразить это. благодаря – Vitor