我已经搜索了一些解决方案,但都没有用......我在一个QLabel中使用了一个带有GIF动画的QMovie来表示加载状态,好吗?这很简单,我是从这个链接学到的。当我打开菜单时(例如,拥有一个标签),将QMovie放入该菜单的QLabel中时,它可以完美地工作。
现在我的问题是,我为加载状态创建了一个特定的UI,当我知道某些UI打开会很慢时,我会显示我的加载状态UI;当UI打开结束后,我会关闭我的加载状态UI。在这个加载状态UI中,我放置了一个QMovie(GIF动画)和一个简单的标签“Loading...”,非常简单,对吧?但是,当我使用这个特定的UI时,QMovie不起作用。实际上,它不能保持循环......你看,当我在正在打开的UI中使用QMovie时,QMovie会保持循环。
我的英语不是很好,但您能理解我的问题吗? = /
我正在使用与链接中相同的代码。
现在我的问题是,我为加载状态创建了一个特定的UI,当我知道某些UI打开会很慢时,我会显示我的加载状态UI;当UI打开结束后,我会关闭我的加载状态UI。在这个加载状态UI中,我放置了一个QMovie(GIF动画)和一个简单的标签“Loading...”,非常简单,对吧?但是,当我使用这个特定的UI时,QMovie不起作用。实际上,它不能保持循环......你看,当我在正在打开的UI中使用QMovie时,QMovie会保持循环。
我的英语不是很好,但您能理解我的问题吗? = /
我正在使用与链接中相同的代码。
this->m_pMovie = new QMovie(":/ui/images/my_image_loading.gif");
this->m_pMovie->setScaledSize(QSize(50, 50));
this->ui->labelImageLoading->setMovie(this->m_pMovie);
this->m_pMovie->start();
有人了解这个吗?
谢谢...
QProcess
,启动一个“等待中...”的应用程序。然后在 UI 加载完成后杀死该进程。这样你就有了两个 GUI 线程(在两个不同的进程中)。当然,这也会带来自己的问题,并且有点繁重。但如果没有办法缩短主 UI 的加载时间,这可能是可行的。 - Dave Mateer