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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Анимация простого прямоугольника при нажатии на кнопку. QVariantAnimation. QRect  (Прочитано 4153 раз)
TaleFrance
Новичок

Offline Offline

Сообщений: 17


Просмотр профиля
« : Март 26, 2021, 11:42 »

Здравствуйте. Прошу помочь. Как можно реализовать простую анимация изменения размера прямоугольника при нажатии на кнопку? Необходимо использовать только 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.16 секунд. Запросов: 23.