gpt4 book ai didi

qt - 在 QLabel 中使用带有 GIF 动画的 QMovie 的问题

转载 作者:行者123 更新时间:2023-12-04 14:41:09 28 4
gpt4 key购买 nike

我已经为我的问题搜索了一些解决方案,但一无所获...我在一个 QLabel 中使用带有 GIF 动画的 QMovie 来获取加载状态,好吗?这很简单,我在这个链接中了解到:GIF animation in Qt ,例如,当我打开一个菜单而不是拥有一个标签并且我将 QMovie 放在该菜单的 QLabel 中时,这非常有效。

我现在的问题是,我为加载状态制作了一个特定的 UI,当我知道某些 UI 打开速度很慢时,我会显示我的加载状态 UI,当 UI 结束打开时,我会关闭我的加载状态 UI .在此加载状态 UI 中,我放置了一个 QMovie(GIF 动画)和一个简单的 QLabel,写为“正在加载...”,非常简单,对吧? Buuuut,当我使用这个特定的 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();

有人知道吗?

谢谢...

最佳答案

您使用 QMovie 的一切看起来都很好。这只是一个猜测,但我想知道您的 QMovie 是否因为 GUI 线程太忙而没有更新。如果您的 UI 加载速度很慢,这种缓慢可能是因为它在 GUI 线程上消耗了大量处理。这是试图更新您的 QMovie 的同一个线程。结果:您的 QMovie 永远不会更新,因为它依赖于同一个 GUI 线程来绘制更新。

如果在 UI 加载过程中的任何地方您可以对 QApplication::processEvents() 进行几次调用,那么电影就会更新。但它可能会起伏不定。

否则,除了尝试找到使这些 UI 加载速度更快的方法之外,您真的无能为力。 (将它们分成不同的窗口,简单的布局,分成按需加载的选项卡等)

关于qt - 在 QLabel 中使用带有 GIF 动画的 QMovie 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8492872/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com