Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
 Аватар для Draka_za_edy
3 / 2 / 3
Регистрация: 07.03.2018
Сообщений: 217

Рисование прямой на картинке

14.03.2020, 20:37. Показов 1678. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день,есть вот такой код,программа просто отрисовывает прямую.Как сделать так,чтобы она рисовала по картинке?Картинку на сцену не получается добавить,программа сразу ругается.Подскажите как быть..
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
29
30
31
32
33
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QTimer>
#include <QGraphicsEllipseItem>
 
namespace Ui {
class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
 
protected slots:
    void onTimeout();
 
private:
    QGraphicsScene* _scene;
    QGraphicsView* _view;
    QTimer* _timer;
    QGraphicsEllipseItem* _point;
    Ui::MainWindow *ui;
 
};
#endif // MAINWINDOW_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
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
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QVBoxLayout>
#include <QPixmap>
 
MainWindow::MainWindow(QWidget *parent)
   : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QPixmap menu(":/img/image1.png");
 
 
    _scene = new QGraphicsScene(0, 0, 800, 600, this);
    _scene->addRect(_scene->sceneRect());
 
    _view = new QGraphicsView;
    _view->setScene(_scene);
 
    QVBoxLayout* mainLayout = new QVBoxLayout;
    mainLayout->addWidget(_view);
 
    QWidget* mainWidget = new QWidget;
    mainWidget->setLayout(mainLayout);
 
    this->setCentralWidget(mainWidget);
 
    _point = new QGraphicsEllipseItem(0, 0, 10, 10);
    _scene->addItem(_point);
    
 
   _timer = new QTimer(this);
   connect(_timer, &QTimer::timeout, this, &MainWindow::onTimeout);
   _timer->start(100);
 
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
 
void MainWindow::onTimeout()
{
    QPointF oldPos = _point->pos();
    QPointF newPos = QPointF(_point->pos().x() + 10, _point->pos().y() + 10);
 
    _point->setPos(newPos);
 
    QGraphicsLineItem* line = new QGraphicsLineItem (QLineF(oldPos, newPos));
 
    _scene->addItem(line);
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.03.2020, 20:37
Ответы с готовыми решениями:

рисование на картинке
Друзья, нужна ваша помощь. Я хочу вывести картинку и затем на ней отмечать нужные объекты, например с помощью QRect. Подскажите куда лучше...

Рисование на картинке
Доброго дня, как нарисовать по верх картинки линию? Сначала у меня: #создаем сцену self.scene = QGraphicsScene(self) ...

Рисование по картинке
Добрый день! Не могу по картинке нарисовать линию по нормальным координатам... Подскажите как это сделать? Вот класс кастомного...

5
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
15.03.2020, 03:25
Лучший ответ Сообщение было отмечено Draka_za_edy как решение

Решение

Цитата Сообщение от Draka_za_edy Посмотреть сообщение
Картинку на сцену не получается добавить,программа сразу ругается.
Какими словами ругается?
Миниатюры
Рисование прямой на картинке  
1
 Аватар для Draka_za_edy
3 / 2 / 3
Регистрация: 07.03.2018
Сообщений: 217
15.03.2020, 16:41  [ТС]
Очевидно плохими)
Убрал Ui,проект собирается,но пикчи по прежнему нет..
0
фрилансер
 Аватар для Алексей1153
6472 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,168
15.03.2020, 18:37
Цитата Сообщение от Draka_za_edy Посмотреть сообщение
Убрал Ui
зачем?

Цитата Сообщение от Draka_za_edy Посмотреть сообщение
,но пикчи по прежнему нет
а где картинку на сцену то кладёшь? Ты же её только загружаешь во временный объект QPixmap menu

Добавлено через 2 минуты
и, насколько я понимаю, тут каждую секунду будет добавляться на сцену 10 объектов линий. Через некоторое время будет привет тормозам ))

C++
1
2
3
4
5
6
7
void MainWindow::onTimeout()
{
...
    QGraphicsLineItem* line = new QGraphicsLineItem (QLineF(oldPos, newPos));
 
    _scene->addItem(line);
}
0
736 / 702 / 110
Регистрация: 29.05.2015
Сообщений: 4,293
15.03.2020, 19:32
Во, когда-то написал програмульку, которая (теоретически) может показывать наличие/отсутствие свободных мест на парковке. А что-бы не рисовать программно саму парковку, взял спутниковое фото реальной. Правда, рисуется не на сцене, а на канве:
Миниатюры
Рисование прямой на картинке  
0
 Аватар для Draka_za_edy
3 / 2 / 3
Регистрация: 07.03.2018
Сообщений: 217
17.03.2020, 18:19  [ТС]
А как лучше сделать?Я хочу сделать модель движения машины по перекрёстку,картинка-это перекресток,машина-точка(пока что).Машина случайно появляется в одном из 4х мест перекрёстка,и едет по одному из двух направлений(по прямой-вперед,по гиперболе-на поворот).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.03.2020, 18:19
Помогаю со студенческими работами здесь

[Delphi XE5] рисование текста на картинке
как в delphi xe5 можно написать текст на картинке пробовал такой вариант неподходит image.Canvas.Font.Color:=clred; //Цвет ...

Рисование прямой
Подскажите, как нарисовать прямую из не целочисленных значений чисел? Например, от 0.5 до 0.9.

Рисование прямой
Привет! Решил написать простую программу, которая делает вот что: вводятся координаты точек многоугольника, затем появляется окно, залитое...

Рисование координатнатной прямой
http://rghost.ru/4972178/image.png Помогите составить координатную прямую!!! Срочно надо до 29 марта пожалуйста! Добавлено через...

Рисование прямой линии (рекурсивный алгоритм)
Сразу, прошу, на алгоритмы типа &quot;Брейзенхема&quot; не посылать. С помощью рекурсии, пытаюсь то что хочу , но не могу понять в чем же дело. ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru