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

Исправить код создающее приложение рисующее фигуру

17.04.2022, 19:54. Показов 488. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Исправить код и убрать лишнее создающее приложение рисующее фигуру елочки , нужно сделать чтобы сама елка окрашивалась одним цветом а ствол другим при этом сохраняя анимацию. И Как добавить на саму елку кружки(шарики)
в исходный файл paintwidget.cpp:
C++
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "paintwidget.h"
 
PaintWidget::PaintWidget(QWidget *parent)
    : QWidget{parent}
{
 
    ColorBrush=QColor(0, 0, 0);
    ColorPen=QColor(146, 56, 81);
    ColorBrush_1=QColor(0, 0, 0);
    ColorPen_1=QColor(127,69, 12);
    QVariantAnimation* animation = new QVariantAnimation(this);
    animation->setStartValue(QColor(0,0,0));
    animation->setEndValue(QColor(169,89,145));
    animation->setDuration(5000);
    connect(animation, &QVariantAnimation::valueChanged,
    [this](QVariant value)
    {
        ColorBrush = value.value<QColor>();
        ColorPen= value.value<QColor>();
        update();
    });
    animation->start();
    QVariantAnimation* animation2 = new QVariantAnimation(this);
    animation2->setStartValue(89);
    animation2->setEndValue(3098);
    animation2->setDuration(60000);
    connect(animation2, &QVariantAnimation::valueChanged,
    [this](QVariant value)
    {
 
    });
    animation2->start();
}
void PaintWidget::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
 
    QBrush br1(ColorBrush);
    QPen pen1(ColorPen);
    painter.setBrush(br1);
    painter.setPen(pen1);
 
   painter.drawLine(QPoint(370,280),QPoint(430,280));
   painter.drawLine(QPoint(370,280),QPoint(370,240));
   painter.drawLine(QPoint(430,280),QPoint(430,240));
 
   QPolygon pol;
   pol<<QPoint(200,120)<<QPoint(600,120)<<QPoint(400,60);
   painter.drawPolygon(pol);
 
   QPolygon pol_1;
   pol_1<<QPoint(200,180)<<QPoint(600,180)<<QPoint(400,100);
   painter.drawPolygon(pol_1);
   QPolygon pol_2;
   pol_2<<QPoint(200,240)<<QPoint(600,240)<<QPoint(400,140);
   painter.drawPolygon(pol_2);
 
}
 
void PaintWidget::drawLine(int x1,int y1,int x2,int y2,int w,int h)
{
    QPainter painter(this);
    QBrush br1(ColorBrush);
    QPen pen1(ColorPen);
    painter.setBrush(br1);
    painter.setPen(pen1);
    const QPoint envelope[] = {QPoint(x1-50, h/2+y1), QPoint(x2-50,  h/2+y2),QPoint(x1+w+50, h/2+y1 ),QPoint(x2+w+50, h/2+y2)};
    painter.drawLines(envelope,2);
 
}
Заголовочный файл paintwidget.h:
C++
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
 
#ifndef PAINTWIDGET_H
#define PAINTWIDGET_H
 
#include <QWidget>
#include<QPainter>
#include<QVariantAnimation>
 
class PaintWidget : public QWidget
{
    Q_OBJECT
public:
    explicit PaintWidget(QWidget *parent = nullptr);
 
signals:
 
private:
    void drawLine(int x1,int y1,int x2,int y2,int w,int h);
    QColor ColorPen;
    QColor ColorBrush;
    QColor ColorPen_1;
    QColor ColorBrush_1;
    int Shift;
protected:
    virtual void paintEvent(QPaintEvent *event) override;
};
 
#endif // PAINTWIDGET_H
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.04.2022, 19:54
Ответы с готовыми решениями:

Создайте приложение, рисующее на форме фигуру (рисунок 1). Размеры, согласно вариантам, находятся в таблице 1
Создайте приложение, рисующее на форме фигуру (рисунок 1)(Вариант 4). Размеры, согласно вариантам, находятся в таблице 1. Среда Delphi

Приложение, создающее диаграммы
Помогите плиз. Разработать приложение, создающее диаграммы. using System; using System.Collections.Generic; using...

Приложение-камера, создающее видео из фото
Самая близкая к желаемой возможность на камере по умолчанию – серийная съемка: в течении до 10 секунд создаются снимки с частотой ~1/10....

1
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
20.04.2022, 13:06
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
53
54
55
56
57
58
59
60
61
62
63
64
#include <QApplication>
#include <QWidget>
#include <QPaintEvent> 
#include <QPainter>
#include <QVariantAnimation>
 
class PaintWidget: public QWidget
{
public:
  PaintWidget(): QWidget(nullptr)
  {
    brush1=QColor(0, 0, 0);
    brush2=QColor(0, 255, 0);
    QVariantAnimation* animation1 = new QVariantAnimation(this);
    animation1->setStartValue(brush1);
    animation1->setEndValue(QColor(169,89,145));
    animation1->setDuration(5000);
    connect(animation1, &QVariantAnimation::valueChanged,
    [this](QVariant value) {
      brush1 = value.value<QColor>();
    });
    QVariantAnimation* animation2 = new QVariantAnimation(this);
    animation2->setStartValue(brush2);
    animation2->setEndValue(QColor(255,0,0));
    animation2->setDuration(5000);
    connect(animation2, &QVariantAnimation::valueChanged,
    [this](QVariant value) {
      brush2 = value.value<QColor>();
      update();
    });
    animation1->start();
    animation2->start();
  }
private:
  QColor brush1;
  QColor brush2;
protected:
  void paintEvent(QPaintEvent*)
  {
    QPainter painter(this);
    painter.setBrush(brush2);
    painter.setPen(brush2);
    painter.drawRect(370, 240, 60, 40);
    painter.setBrush(brush1);
    painter.setPen(brush1);
    for (int y=120, a=60; y<=240; y+=60, a+=20) {
      QPolygon pol;
      pol<<QPoint(200,y)<<QPoint(600,y)<<QPoint(400,y-a);
      painter.drawPolygon(pol);
    }
    painter.setBrush(brush2);
    painter.setPen(brush2);
    painter.drawEllipse(300, 200, 20, 20);
    painter.drawEllipse(450, 150, 20, 20);
  }
};
 
int main(int argc, char** argv)
{
  QApplication app(argc, argv);
  PaintWidget window;
  window.show();
  return app.exec();
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2022, 13:06
Помогаю со студенческими работами здесь

Создать приложение, создающее документ, содержащий поздравление с праздником
Здравствуйте.Помогите,пожалуйста.Задание:Создать приложение, с помощью которого пользователь может создать документ, содержащий...

Создать приложение, рисующее Циклоиду
Не могли бы вы составить приложение рисующие самую обыкновенную циклоиду.Ну то есть катящаяся окружность рисующая циклоиду. Уравнение в...

Разработать приложение рисующее при нажатии
Разработать приложение, рисующее при нажатии средней кнопки мыши на форме зеленую вертикальную линию, вращающуюся против часовой стрелки...

Создать приложение, рисующее красный, синий или зеленый прямоугольник
Создать приложение, рисующее красный, синий или зеленый прямоугольник. Выбор цвета осуществляется пользователем. В качестве графической...

Разработать приложение, рисующее при нажатии левой кнопки делфи
Здравствуйте, не могу разобраться с программой, помогите пожалуйста написать программу. Разработать приложение, рисующее при нажатии...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru