Russian Qt Forum
Ноябрь 23, 2024, 12:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как анимировать нарисованную фигуру?  (Прочитано 3333 раз)
TaleFrance
Новичок

Offline Offline

Сообщений: 17


Просмотр профиля
« : Март 29, 2021, 20:43 »

Здравствуйте. Прошу помочь. Как можно реализовать простую анимация изменения размера прямоугольника при нажатии на кнопку? Необходимо использовать только QVariantAnimation. В интернете мало примеров работы с ним.


Код:
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();
 
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 22.