Я думаю, что логика должна быть улучшена. В случае, если ваш ui-> detailText виден, логически он должен выглядеть следующим образом:
animation->setStartValue( QSize( ui->detailText->width(), ui->detailText->height()));
animation->setEndValue( QSize( ui->detailText->width(), 0));
Это может быть потому, что если ваш detailText видим, вы уже скрываете его, вместо того, чтобы пытаться уменьшить его, чтобы стать невидимым,И когда он невидим, вам, вероятно, следует попробовать следующее:
animation->setStartValue( QSize( ui->detailText->width(), 0));
animation->setEndValue( QSize( ui->detailText->width(), ui->detailText->height()));
Другими словами, проблема может заключаться в том, что вы должны изменить размер виджета, который хотите анимировать, в направлении, противоположном тому, которое есть сейчас,И, наконец, было бы очень полезно, если бы вы предоставили файл * .ui для вашего проекта, чтобы мы могли лучше отладить ваш код и посмотреть, как он должен быть исправлен. В настоящее время это немного дикое предположение, поэтому я не могу гарантировать, что оно будет работать для вас.