我不知道我是否可以在不发布大量代码的情况下解释这个问题,但是这里有。
我有一个 Qt 应用程序,它应该显示一系列图像。每个图像都使用 QLabel 显示在 Qt 主窗口中。为了显示每个图像,我编写了一个名为 DisplayImg(int i) 的子程序,其中整数 i 是帧号。它适用于显示单个图像。
然后我创建了一个“播放”按钮(在 Qt 中),它应该播放一系列图像。播放按钮连接到名为 on_Play_clicked() 的插槽。这是一个执行此操作的子程序:
for (i = 0 ; i < N ; i++)
DisplayImg(i);
问题是显示仅针对序列中的最终图像发生变化。尽管我知道(从 printf() 中)所有中间图像都调用了 DisplayImg(),但没有显示任何中间图像。
这些信息足以解释问题吗?我是否误解了插槽的工作原理?Qt 主窗口在子例程 on_Play_clicked() 返回之前不会更新吗?