我正在我的一个班级中创建QLabel
个对象,并将它们添加到我的QList<QLabel*> *objects
。 QList
在我的主类中使用命令objects = new QList<QLabel*>();
创建,然后发送到创建和添加对象的类。此QList
也会发送到我的movement class
。
在我的movement class
我有一个计时器,可以检测QList
是否为空,如果不是,我会检查QLabel
中的所有QList
个对象,并且在某些情况下,我移动QLabel
对象。
这就是我的问题所在。代码完美编译,我使用了调试并完成了代码,移动命令完美执行,如果我使用qDebud()
来显示x和y坐标QLabel
它会返回正确的值但是我的显示屏上的动作没有更新?
QLabel
在正确的时间被完美删除,并从屏幕上删除,但是没有显示动作?
有没有人对为什么会发生这种情况有一些见解,以及如何解决这个问题?
答案 0 :(得分:1)
代码移动窗口小部件,调试输出显示位置已更改但在 事实上,一些小部件仍然在以前的位置。为什么呢?
某些小部件位置更新可能会延迟。尝试使用此电话:
for(auto* pLabel : listOfLabels)
{
// and other actions suitable
// pLabel->move(newPoint(x, y));
pLabel->updateGeometry();
}