2009-10-01 3 views
1

Я показываю анимированный gif в своем приложении, создавая QLabel и устанавливая фильм как QMovie. Проблема, с которой я сталкиваюсь, заключается в том, что когда отображается gif, любая часть изображения, которая остается постоянным цветом во всей анимации, отображается как цвет фона. Надеюсь, я это ясно объясню. Вот код, я использую для создания анимации, если это помогает:Анимированные gifs в QMovie

rewardLabel=new QLabel(); 
rewardLabel->setCursor(QCursor(Qt::BlankCursor)); 
rewardLabel->setWindowFlags(Qt::FramelessWindowHint); 
rewardLabel->hide(); 
string movieTemp="animations/"+animationFiles[animationIndex]; 
QString movieFile(movieTemp.c_str()); 
rewardMovie=new QMovie(movieFile); 
rewardLabel->setMovie(rewardMovie); 

Позвольте мне знать, если мне нужно, чтобы объяснить ситуацию лучше. Заранее спасибо.

ответ

0

Посмотрите на QWidget s window attributes. Я считаю, что те, с которыми вы заинтересованы в являются:

Qt::WA_OpaquePaintEvent 
Qt::WA_NoSystemBackground 
Qt::WA_TranslucentBackground 

Там может быть несколько widget flags интереса, но я думаю, что они все были перемещены на флаги в Qt-4.

Смежные вопросы