C++ → QT QGraphics преобразование координат
В переопределенной функции
mousePressEvent(QGraphicsSceneMouseEvent
event) класса QGraphicsItem (или подкласса от него)
есть метод
QPoint QGraphicsSceneMouseEvent::screenPos() const
позволяющий получить экранные координаты в точке
нажатия мыши:
……

Qt → Как обращаться к объектам QGraphicsItem созданным в QGraphicsView
Добрый день.
С помощью такого класса создаю эллементы в QGraphicsView
class MoveItem : public QObject, public QGraphicsItem { Q_OBJECT public: explicit MoveItem(QObject *parent = 0); ~MoveItem(); int id; int width, height; private: QRectF boundingRect() const; …

Qt → Как добавлять на QGraphicsScene элементы в виде картинок
Добрый день.
Взял код из
этой статьи.
Кочу добавлять эллементы QGraphicsItem не в виде прямоугольника, а в виде картинки.
Попробовал сделать так, но картинка не добавляется.
Скажите пожалуйста, как сделать правильно?
void MoveItem::paint(QPainter *painter, cons…
C++ → Нарисовать дугу в QGraphicsItem
QGraphicsItem, Qt, QGraphicsScene

Qt → Qt/C++ - Урок 072. Пример векторного редактора на Qt
QGraphicsItem, QGraphicsScene, QGraphicsView, Vector Editor, QGraphicsObject
Довольно часто появляются вопросы так или иначе связанные с работой графической сцены, с кастомными фигурами, с рисованием линий на графической сцене, причём даже всяких ломаных линий. И тут я вспомнил про один проект, который делал в качестве тестового задания.
А именно это был векторный редактор, который может:
- Создавать прямоугольники
- Изменять размер этих прямоугольников
- Крутить прямоугольники вокруг центра
- Делать заливку прямоугольников
- Делать заливку прямоугольников градиентом
- Изменять ширину абриса прямоугольника
- Устанавливать цвет абриса прямоугольника
- Создавать линии
- Задавать ширину и цвет создаваемой линии
- Делать ломанные линии из линий по двойному щелчку добавляя на линии точки излома
- Выделять все графические объекты и перетаскивать их кучкой
- Сохранять полученное изображение в SVG файл, а также восстанавливать все графические объекты из этого файла
На выполнение этого проекта в своё время (1,5 года назад) я потратил порядка 36 часов рабочего времени... сейчас на это ушло бы поменьше времени.
PyQt5 → Не приходят mousePressEvent от дочерних item'ов а
На QGraphicsScene размещен переопределенный QGraphicsRectItem, в который добавлены с помощью addItem несколько дочерних QGraphicsRectItem. Фильтр событий для child'ов включен (setFiltersChildEvents(True)). По идее, любой клик на child, должен вызывать mousePressEvent у родительского QGraphicsR…
Qt → Смена цвета объекта при клике мышью
Qt, QGraphicsItem, QGraphicsScene
Вот проект. При нажатии на квадрат он меняет цвет. Хотелось бы, чтобы он цвет менял, но не двигался. Мне зафиксировать сцену нужно или что сделать? Может кто-нибудь изменить код, чтобы квадрат не двигался, а лишь изменял цвет.

Qt → Qt/C++ - Урок 033. Работаем с QGraphicsObject вместо QGraphicsItem
QGraphicsScene, GameDev, QGraphicsItem, Qt, QGraphicsObject
Моё внимание обратили на то, что для работы с сигналами и слотами вместо класса наследованного от QGraphicsItem и от QObject можно использовать класс наследованный от QGraphicsObject . И действительно, если немного покопаться в исходниках QGraphicsObject , то обнаружится, что это класс наследованный от QGraphicsItem и от QObject . То есть также применяется множественное наследование, только в данном случае все велосипеды уже написаны до нас. Поэтому попробуем поработать с данным классом на примере игровой механики.
А именно, предлагаю написать программу, в которой Мы будет перемещать героя кликом мыши по графической сцене, как в любой РПГ наподобие Diablo.
Структура проекта для работы с QGraphicsObject
- QGraphicsObjectExample.pro - профайл проекта;
- main.cpp - основной файл исходных кодов;
- widget.h - заголовочный файл окна приложения;
- widget.cpp - файл исходных кодов окна приложения;
- customscene.h - заголовочный файл кастомизированной графической сцены ;
- customscene.cpp - файл исходных кодов кастомизированной графической сцены;
- triangle.h - заголовочный файл класса героя-треугольника, который будет передвигаться;
- triangle.cpp - файл исходных кодов класса героя-треугольника.

Qt → Qt/C++ - Урок 027. Полиморфизм в Qt на примере геометрических фигур в QGraphicsScene
QGraphicsScene, Qt уроки, figure, QGraphicsItem, ооп, Полиморфизм, пример, Qt, square, triangle
Полиморфизм является одной из парадигм ООП (объектно-ориентированное программирование). Полиморфизм реализует способность базового класса предоставлять свойства и методы, реализация которых не известна для будущих классов, которые будут наследованы от данного класса. То есть базовый класс в данном случае имеет весь необходимый набор методов для реализации поставленных задач, но конкретная реализация определённых методов возлагается на классы потомки. И, как правило, базовый класс является абстрактным, то есть от него не создаются объекты.
Например, необходимо реализовать программу, в которой имеется возможность рисовать несколько геометрических фигур мышью на графической сцене , выбирая текущую фигур с помощью кнопок в приложении. Для этого можно создать несколько классов, каждый из которых будет реализовывать весь необходимый функционал, и фактически дублировать в каждом классе большую часть кода, усложняя и запутывая разработку. Либо можно создать один базовый класс, например, Figure , который будет наследован от QGraphicsItem , и реализовать весь основной функционал в данном классе, а потом уже создать три класса, которые будут наследованы от данного класса, но реализовать в них только метод отрисовки самой фигуры: Romb, Square, Triangle.
На ниже следующем рисунке показана логика наследования для базового класса Figure . Применено также множественное наследование класса Figure для реализации работы с сигналами и слотами .

Qt → Qt/C++ - Урок 023. Перетаскивание QGraphicsItem на QGraphicsScene мышью
QGraphicsScene, Qt урок, QGraphicsItem, перетаскивание, Qt
Допустим, что вы делаете приложение, которое будет отображать на графической сцене элементы сетевой инфраструктуры. Вопрос в том, как сделать перемещение этих элементов мышью, то есть осуществлять перетаскивание элементов. Иными словами брать элемент мышью и осуществлять его перемещение в другое место графической сцены.
Давайте разберёмся, как это сделать.
Структура проекта
Для демонстрации примера создаём новый проект и добавляем в него новый класс, отнаследованный от QGraphicsItem .
- MoveGraphicsItem.pro - профайл проекта;
- main.cpp - запускающий файл;
- widget.h - заголовочный файл главного окна;
- widget.cpp - файл исходных кодов главного окна;
- moveitem.h - заголовочный файл графического элемента;
- moveitem.cpp - файл исходных кодов графического элемента.
- widget.ui - форма главного окна.

Timeweb
Позвольте мне порекомендовать вам отличный хостинг, на котором расположен EVILEG.
В течение многих лет Timeweb доказывает свою стабильность.
Для проектов на Django рекомендую VDS хостинг
Посмотреть Хостинг