LookAtClick.cpp
Go to the documentation of this file.
1#include "LookAtClick.h"
2
3#include <iostream>
4
5#include <QMouseEvent>
6#include <QPainter>
7
10
11LookAtClick::LookAtClick(QWidget* parent) : QWidget(parent)
12{
13 setMouseTracking(true);
14 setCursor(Qt::PointingHandCursor);
15 this->installEventFilter(this);
16 std::cout << "mousetracking activated!\n";
17}
18
19void
21{
22 _backgroundImage = image.copy();
23 setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
24 setFixedSize(image.size());
25 QImage newImage(image.size(), QImage::Format_ARGB32);
26 newImage.fill(Qt::white);
27 QPainter painter(&newImage);
28 painter.drawImage(QPoint(0, 0), _backgroundImage);
29 _backgroundImage = newImage;
30 update();
31}
32
33QSize
35{
36 return _backgroundImage.size();
37}
38
39bool
40LookAtClick::eventFilter(QObject* watched, QEvent* event)
41{
42 if (event->type() == QEvent::MouseButtonPress)
43 {
44 ARMARX_INFO << "mousePressEvent found";
45 mousePressEvent(static_cast<QMouseEvent*>(event));
46 }
47 return false;
48}
49
50void
52{
53 ARMARX_INFO << "mousePressEvent triggered!";
54 if (event->button() == Qt::LeftButton)
55 {
56 ARMARX_INFO << "Leftclick detected!";
57 _lastPoint = event->pos();
58 QPoint offset;
59 _center.setX(_backgroundImage.size().rwidth() / 2);
60 _center.setY(_backgroundImage.size().rheight() / 2);
61 offset.setX(_lastPoint.x() - _center.x());
62 offset.setY(_lastPoint.y() - _center.y());
63 clickedAt(offset);
64 }
65}
66
67void
68LookAtClick::mouseMoveEvent(QMouseEvent* event)
69{
70 std::cout << "Mouse is moving!\n";
71}
72
73void
74LookAtClick::paintEvent(QPaintEvent* event)
75{
76 QPainter painter(this);
77 QRect dirtyRect = event->rect();
78 painter.drawImage(dirtyRect, _backgroundImage, dirtyRect);
79}
QSize sizeHint() const override
void mouseMoveEvent(QMouseEvent *event) override
void mousePressEvent(QMouseEvent *event) override
bool eventFilter(QObject *watched, QEvent *event) override
void paintEvent(QPaintEvent *event) override
void clickedAt(const QPoint &point)
LookAtClick(QWidget *parent=nullptr)
void drawBackground(QImage &image)
#define ARMARX_INFO
The normal logging level.
Definition Logging.h:181