- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经为我的问题搜索了一些解决方案,但一无所获...我在一个 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/
如何在 PyQt5 中使用 QMovie 应用边框半径或以其他方式实现圆角效果?它似乎对QSS没有反应。虽然我不认为它是相关的,但无论如何,这是我当前的代码,以给出我尝试过的内容: image = Q
我正在使用 QMovie 在 QLabal 上播放 webp 动画,代码如下: Foo::Foo() { movie_ = new QMovie("/path/to/my.webp", "",
开发者小伙伴们!我有一个关于 Qt 和多线程的问题。 === 简短版 ============================================ Qt可以做我想做的事吗?即(1)显示装载
嗨,我认为 QMovie 可以采用 QBuffer 吗?这是我的代码。 a = QByteArray(img) b = QBuffer(a) self.movie = QMovie(b, 'GIF')
我正在尝试使用 QLabel 播放 gif 动画。gif 动画用于显示加载状态。每次用户进入场景时都应播放动画。 随着进入次数的增加,标签越来越大。我不知道为什么。 这是简化的代码。 .h 文件: #
我需要在 QtDesigner 中加载 QMovie。我注意到很多类无法从 QtDesigner 访问。我通常在 QtDesigner 中进行设计,然后直接在代码中加载 ui 文件。这样我就不用担心用
我有一个简单的初始屏幕扩展,它应该在用户等待主窗口时显示一点动画(动画 gif)。问题是,只显示第一帧而不是全部: class SplashScreen : public QSplashScreen
我创建了一个 QLabel 并将它的电影设置为带有动画 gif 的 QMovie 对象。然后在我的应用程序的 resizeEvent 中调整大小并移动标签,使其居中/适合布局。这工作正常,但电影有很多
我如何在 PyQt5 中重新加载新的动画 gif 文件? 我想做的事: 加载 test.gif 播放 test.gif 用另一个任意动画 gif 覆盖原始 test.gif 文件 单击按钮时让 Qmo
我正在尝试将 gif 合并到我的项目中,但是源文件的分辨率很小,加载时会变得模糊。 过去,当我在 QLabels 中使用小图片时,它们在缩放时变得模糊,因为 Qt 试图在缩放时自动“平滑”它们。在那些
我可以用这样的代码旋转QPixmap QPixmap pix("img.jpg"); QMatrix rm; rm.rotate(90); pix = pix.transformed(
我正在为智力竞赛节目创建记分牌,我偶然发现了这个问题。下面的代码显示动画 .gif 的动画速度取决于玩家的当前分数。 void Scoreboard::label1(int i) {
我在 Windows 上部署显示动画 gif 的应用程序时遇到问题。为此,我使用 QMovie,如果我从 QtCreator 启动它,它工作正常。我收集了运行该应用程序所需的文件,我可以很好地启动它,
我想在currentFrameNumber等于frameCount时使用frameChanged(int)发出信号,我的QT版本是4.7.4 QObject::connect(movie,SIGNAL
我是 Ubuntu 和 Qt 的新手。我需要显示其他长时间操作的忙碌状态。所以,我只是尝试使用等待动画 gif 文件来加载,而不是使用进度条。 我正在为 Qt 项目使用 Eclipse 编辑器。 Tr
我已经为我的问题搜索了一些解决方案,但一无所获...我在一个 QLabel 中使用带有 GIF 动画的 QMovie 来获取加载状态,好吗?这很简单,我在这个链接中了解到:GIF animation
我看了很多问题,其中大部分不在这个网站上,他们都提到 QMovie 必须用文件名调用,就像这样 anim = QtGui.QMovie("Filename.gif") #or self.movie =
我正在尝试在 Qt 中使用 QMovie 来播放两个 GIF。当一个 gif 结束时,我需要播放下一个。 问题就出在这里。我想将信号连接到插槽,以便知道 GIF 动画何时结束。这是我的代码示例: #i
我是一名优秀的程序员,十分优秀!