我有关于动画的Qt问题。我有一个名为animation_group的QParallelAnimationGroup,当我想向组中添加动画时,我创建了一个QPropertyAnimation *。但是当我调用animation_group.start()时,没有任何反应(square_table中的QLabel应该是动画的)。我唯一看到的是QLabel出现在它们应该的位置(起始位置)但是没有移动到最终位置。这真的很奇怪。您可以在下面找到我的代码:
void GridView::select_animation(int start_x, int start_y, int end_x, int end_y)
{
QPropertyAnimation* anim = new QPropertyAnimation(square_table[start_x][start_y], "geometry");
connect(anim, SIGNAL(finished()), anim, SLOT(deleteLater()));
anim->setDuration(4000);
// xtable_to_position and ytable_to_position are member functions giving a valid int.
anim->setStartValue(QRect(xtable_to_position(start_x), ytable_to_position(start_y), square_size, square_size));
anim->setEndValue(QRect(xtable_to_position(end_x), ytable_to_position(end_y), square_size, square_size));
animation_group.addAnimation(anim);
square_table[end_x][end_y] = square_table[start_x][start_y];
}
void GridView::animate()
{
animation_group.start();
animation_group.clear();
}
我不知道发生了什么。谢谢你的帮助。