Я сделал GUI в Qt, что в основном виджет с QGraphicsView на него у меня есть функция:Нажмите событие для QGraphicsView Qt
void GUI::mousePressEvent(QMouseEvent *event)
{
if(event->button() == Qt::LeftButton)
{
QPointF mousePoint = ui->graphicsView->mapToScene(event->pos());
qDebug() << mousePoint;
}
}
, который ссылается на общественный слот:
void mousePressEvent(QMouseEvent *event);
это показывает мне на консоли координату x, y, где я нажал, однако в настоящее время это работает на весь виджет, и я идеально хотел бы, чтобы x, y (0,0) был левым верхним углу QGraphicsView вместо в верхнем левом углу всего виджета. кто-нибудь знает, как сделать эту работу, я подумал из своего кода, что это то, что он делал, но оказывается, что это не так, iv посмотрел вокруг какое-то время, но я ничего не придумывал
любая помощь была бы очень благодарна.
спасибо! !! thats работает красиво, теперь я знаю, что мой верхний левый угол больше будет теперь (0,0), но есть ли какая-либо форма функции bounds() или что-то, что я могу сделать, чтобы оторвать нижнюю правую координату. Im в основном помещает карту в качестве изображения в 'QGrpahicsView' и хочет найти координату xy кликов, поэтому я не могу преобразовать это значение в long long, однако для этого нужно, чтобы в верхнем левом и правом нижнем углу карты отображалось значение – AngryDuck
' ui- > graphicsView-> rect(). bottomLeft() 'Дает вам нижний угол в координатах виджетов вида. Это то, что вы хотели? – cmannett85
haha bottom right был на самом деле тем, чем я был, но я думаю, что смогу работать, что один из 'ui-> graphicsView-> rect(). BottomRight()' ?? приветствия, хотя я не согласен с ответом, вы меня очень долго спасли – AngryDuck