Member 13740197 Ответов: 1

Как проверить, играет ли qmovie или нет в qt


Привет,

Я должен воспроизвести gif с помощью QMovie, когда фильм не запущен, это означает, что я должен проверить состояние фильма, не запущенного. Проверьте приведенный ниже код. Здесь я проверяю состояние фильма в состоянии if, но здесь я получаю ошибку сегментации. Не могли бы вы, пожалуйста, предоставить решение.

QMovie *movie; // который находится в глобальном масштабе


if (movie->state() == QMovie::NotRunning) //получение ошибки сегментации здесь
{
movie = new QMovie("/root/Byjus_Once.gif");
if (!movie->isValid())
{
qDebug()<<"фильм Inavlid";
}
ui->label->setMovie(фильм);
фильм->старт();
}

Что я уже пробовал:

QMovie *movie; // который находится в глобальном масштабе


if (movie->state() == QMovie::NotRunning) //получение ошибки сегментации здесь
{
movie = new QMovie("/root/Byjus_Once.gif");
if (!movie->isValid())
{
qDebug()<<"фильм Inavlid";
}
ui->label->setMovie(фильм);
фильм->старт();
}

1 Ответов

Рейтинг:
8

phil.o

Скорее всего, вы получаете ошибку сегментации, потому что movie указатель-это нулевой указатель.
Ты можешь попробовать

if (movie)
{
   if (movie->state() == QMovie::NotRunning)
   {
      // ...
   }
}
else
{
   // movie has not been assigned yet
}
Вы пробовали отлаживать?


Member 13740197

Спасибо за ответ.