Я пытаюсь отобразить несколько изображений в MainWindow и могу выполнять определенные действия, когда эти изображения получают mousePressEvent.
Для этого я подумал, что создам новый класс, производный от QWidget, который имеет закрытый член QImage. Благодаря этому я могу переопределить paintEvent и mousePressEvent, чтобы отображать изображение и ловить ввод мыши.
Однако проблема в том, что изображение, нарисованное в MainWindow, имеет размер виджета и его форму (прямоугольную), а изображение не имеет той же формы (даже не обычной формы). Это вызывает некоторые проблемы, потому что я могу перехватить mousePressEvent на частях, которые не принадлежат моему изображению, но принадлежат области виджетов.
У кого-нибудь есть идеи, как это решить?
Я все еще новичок в QT, поэтому, пожалуйста, не возражайте против какой-либо огромной ошибки :)
Обновление:
Хорошо, я попробовал другой подход.
Теперь у меня есть MainView в моем MainWindow с привязкой к нему graphicScene. К этой сцене я добавил несколько графических элементов.
Для реализации своих графических элементов мне пришлось перегружать boundingRect и метод рисования. Что касается документации, я понимаю, что QT использует метод shape (который вызывает boundingRect) для определения формы объекта для рисования. Это могло бы быть решением моей проблемы или, по крайней мере, одним решением для повышения точности нарисованной формы.
На данный момент я возвращаю квадрат с размером моего изображения в boundingRect. Кто-нибудь знает, как я могу «адаптировать» форму к своему изображению (напоминающему цилиндр)?