我在应用程序启动期间使用QSplashScreen显示图像。
现在我需要使用带有闪屏的动画gif图像。 我怎样才能做到这一点?
答案 0 :(得分:0)
QImageReader
阅读器类允许您使用QImageReader::read
函数访问动画帧。
文档说明:
对于支持动画的图像格式,重复调用read()将返回下一帧。读取所有帧后,将返回空图像。
您需要继承QSplashScreen
并重新实施paintEvent
以绘制闪屏。 QImageReader::jumpToImage
函数可用于从动画中选择正确的帧。
您需要有一些触发启动画面更新的系统,例如,如果您在循环中加载大量文件,则可以在加载每个文件后触发闪屏重绘。
定期调用QCoreApplication::processEvents
将允许处理绘制事件,QWidget::repaint
将触发重绘。
伪代码:
MySplashscreen screen;
// Loading loop
for (...)
{
loadFile(...);
screen.select_frame(...); // function to select correct frame
screen.repaint();
QCoreApplication::processEvents();
}