Answer the question
In order to leave comments, you need to log in
Qt. How to animate a shape on button click?
Hello. Please help. How can I implement a simple animation of changing the size of a rectangle when a button is clicked? Only QVariantAnimation needs to be used. There are few examples of working with it on the Internet.
void MainWindow:: paintEvent(QPaintEvent *)
{
// Алгоритм построения изображения:
// Создаем объект-"художник" и привязываем его к контексту виджета
QPainter painter(this);
// Включаем сглаживание линий
painter.setRenderHint(QPainter::Antialiasing, true);
// Маленький прямоугольник (участок цепи)
QBrush br(QColor(0, 255, 0), Qt::DiagCrossPattern); // Создаём кисть(для заливки фигуры)
painter.setBrush(br);
painter.drawRect(225, 120, 100, 50); // Рисуем прямоугольник
}
void MainWindow::on_pushButton_clicked()
{
// Создаём анимацию
QVariantAnimation* animation = new QVariantAnimation(this);
animation->setDuration(5000);
animation->setStartValue(QRect(225, 120, 100, 50)); // Задаём начальное значение
animation->setEndValue(QRect(225, 120, 200, 100)); // Задаём конечное значение
connect(animation,
&QVariantAnimation::valueChanged, [this](QVariant value)
{
//..Не понимаю, что нужно делать
update();
});
// Запускаем анимацию
animation->start();
}
Answer the question
In order to leave comments, you need to log in
//..I don't understand what to do
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question