QLabel职位未更​​新

时间:2016-05-23 18:04:27

标签: qt qlabel

我正在我的一个班级中创建QLabel个对象,并将它们添加到我的QList<QLabel*> *objectsQList在我的主类中使用命令objects = new QList<QLabel*>();创建,然后发送到创建和添加对象的类。此QList也会发送到我的movement class。 在我的movement class我有一个计时器,可以检测QList是否为空,如果不是,我会检查QLabel中的所有QList个对象,并且在某些情况下,我移动QLabel对象。

这就是我的问题所在。代码完美编译,我使用了调试并完成了代码,移动命令完美执行,如果我使用qDebud()来显示x和y坐标QLabel它会返回正确的值但是我的显示屏上的动作没有更新? QLabel在正确的时间被完美删除,并从屏幕上删除,但是没有显示动作?

有没有人对为什么会发生这种情况有一些见解,以及如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

  

代码移动窗口小部件,调试输出显示位置已更改但在   事实上,一些小部件仍然在以前的位置。为什么呢?

某些小部件位置更新可能会延迟。尝试使用此电话:

QWidget::updateGeometry()

for(auto* pLabel : listOfLabels)
{
   // and other actions suitable
   // pLabel->move(newPoint(x, y));
   pLabel->updateGeometry();
}