Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418

Проблемы с аниимацией движения

26.02.2022, 13:36. Показов 2197. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
не понимаю, почему не двигается прямоугольник, помогите пожалуйста


C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//rectangle.cpp
 
#include "rectangle.h"
#include "ui_rectangle.h"
 
rectangle::rectangle(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::rectangle)
{
    ui->setupUi(this);
 
    size = QSize(200,100);
    origin = QPoint(500,50);
}
 
void rectangle::moving(rectangle *myRect) {
 
    myRect=new rectangle(this);
    myRect->show();
    myRect->resize(size);
    myRect->move(origin);
 
    QPoint end(50,50);
 
                        QPropertyAnimation *animation =
                                new QPropertyAnimation(myRect, "pos");
                        animation->setDuration(10000);
                        animation->setStartValue(origin);
                        animation->setEndValue(end);
                        animation->start();
 
                        update();
 
}
 
 
void rectangle::paintEvent(QPaintEvent *event) {
        Q_UNUSED(event);
 
        QPainter painter(this);
        painter.setPen(QPen(Qt::green));
        painter.drawRect(QRect(origin, size));
        painter.fillRect(QRect(origin,size), QColor(Qt::green));
        QWidget::paintEvent(event);
 
}
 
 
rectangle::~rectangle()
{
    delete ui;
}
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//rectangle.h
 
#ifndef RECTANGLE_H
#define RECTANGLE_H
 
#include <QWidget>
#include <QPainter>
#include <QApplication>
#include <QPropertyAnimation>
 
 
QT_BEGIN_NAMESPACE
namespace Ui { class rectangle; }
QT_END_NAMESPACE
 
class rectangle : public QWidget
{
    Q_OBJECT
 
public:
    rectangle(QWidget *parent = nullptr);
    ~rectangle();
 
    void paintEvent(QPaintEvent *e);
    void moving(rectangle *myRect);
 
 
private:
    Ui::rectangle *ui;
 
    QPoint origin;
    QSize size;
    int step = 10;
};
#endif // RECTANGLE_H
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2022, 13:36
Ответы с готовыми решениями:

Проблемы с расчетом движения предмета
Есть программа. На левую кнопку мыши появляется кубик и, имея начальный импульс в какую-либо сторону, летит, и падает за пределы экрана....

Написать програму для движения мерцающего круга по эллипсу (анимация движения)
Добрый день,передо мной стоит задача : Написать програму для движения мерцающего круга по эллипсу.Проблема в том,что не могу сообразить как...

Через случайное количество тактов движения изменять направление движения
Помогите пожалуйста. Движение вдоль периметра экрана. Через случайное количество тактов движения изменять направление движения. ...

27
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
27.02.2022, 21:58  [ТС]
Студворк — интернет-сервис помощи студентам
Алексей1153, в Вашем примере сам виджет имеет форму прямоугольника и движется, а я рисовал отдельно прямоугольник и двигал его
0
фрилансер
 Аватар для Алексей1153
6486 / 5714 / 1133
Регистрация: 11.10.2019
Сообщений: 15,233
27.02.2022, 22:09
volver,
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
 
    QWidget w;
    w.resize({800,600});
    w.show();
 
    auto* r=new rectangle(&w);
    r->resize({50,50});
    r->show();
 
    if(auto* a =new QPropertyAnimation(r, "pos"))
    {
        a->setDuration(3000);
        a->setStartValue(QPoint{0,0});
        a->setEndValue(QPoint{500,500});
        a->start(QAbstractAnimation::DeleteWhenStopped);
    }
 
    return a.exec();
}
0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
27.02.2022, 22:12  [ТС]
Алексей1153, а можно же это движение занести с отдельную функцию?
0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
28.02.2022, 21:30  [ТС]
Алексей1153, что-то всёравно не получается у меня сделать это движение в отдельной функции.. Можете помочь, пожалуйста?
0
фрилансер
 Аватар для Алексей1153
6486 / 5714 / 1133
Регистрация: 11.10.2019
Сообщений: 15,233
28.02.2022, 21:34
volver, примерно так

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
void func(QObject* object)
{
    if(auto* a =new QPropertyAnimation(object, "pos"))
    {
        a->setDuration(3000);
        a->setStartValue(QPoint{0,0});
        a->setEndValue(QPoint{500,500});
        a->start(QAbstractAnimation::DeleteWhenStopped);
    }
}
0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
28.02.2022, 23:55  [ТС]
Алексей1153, всёравно прямоугольник не движется

Добавлено через 1 час 50 минут
Алексей1153, можете подсказать, в чём может быть ошибка?)
0
фрилансер
 Аватар для Алексей1153
6486 / 5714 / 1133
Регистрация: 11.10.2019
Сообщений: 15,233
01.03.2022, 06:32
volver, я уже подсказал несколько раз. Видимо, не судьба

Не по теме:

и ещё, слова "всёравно прямоугольник не движется" - не компилируются

0
2 / 2 / 0
Регистрация: 18.09.2021
Сообщений: 418
02.03.2022, 00:49  [ТС]
Алексей1153, нашёл ошибку, теперь прямоугольник движется спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.03.2022, 00:49
Помогаю со студенческими работами здесь

Нужно написать подпрограмму для движения с PID регулированием по перекрёсткам по 4-м датчикам движения
Нужно, чтобы телега двигалась согласно заданному маршруту (как на картинке ниже) и при этом поворачивала на 90 градусов на перекрёстках и...

Тормозящий момент силы, время равнозамедленного движения и кинетическую энергию в начале движения
Сплошной шар массой 1,5 кг и радиусом 0,05 м, вращается вокруг оси, проходящей через его центр. В точке, наиболее удаленной от оси...

Выполнить кинематический анализ движения точки, если закон ее движения имеет вид
1. Координатный способ описания движения точки Выполнить кинематический анализ движения точки, если закон ее движения имеет вид x =...

Найти скорости вращения блока и движения грузов спустя 1 с после начала движения
Здравствуйте! Дана задача: Легкая нить переброшена через цилиндрический блок радиусом 10 см и массой 0,8 кг с горизонтальной осью...

Во сколько раз время движения лодки против течения больше времени движения по течению?
моторная лодка плывёт по реке


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru