ENLIGHTEN
Cross-platform desktop GUI for Wasatch Photonics spectrometers
Loading...
Searching...
No Matches
imageitem.h
Go to the documentation of this file.
1
26
27#ifndef IMAGEITEM_H
28#define IMAGEITEM_H
29
30#include <QImage>
31#include <QPainter>
32#include <QQuickItem>
33#include <QQuickPaintedItem>
34
35class ImageItem : public QQuickPaintedItem
36{
37 Q_OBJECT
38 Q_PROPERTY(QSize sourceSize READ sourceSize NOTIFY sourceSizeChanged)
39 Q_PROPERTY(QSize boundsSize READ boundsSize WRITE setBoundsSize NOTIFY boundsSizeChanged)
40 Q_PROPERTY(QImage sourceImage READ sourceImage NOTIFY sourceImageChanged)
41
42public:
43 explicit ImageItem(QQuickItem* parent = nullptr);
44 void paint(QPainter* painter) override;
45
46 QSize sourceSize();
47 QSize boundsSize();
48 QImage sourceImage();
49
50 Q_INVOKABLE void setImage(const QImage& image);
51 Q_INVOKABLE void saveSourceImage(const QString& url);
52 Q_INVOKABLE void fitToBounds();
53
54signals:
58 void sizeChanged(QSizeF size);
59
60public slots:
61 void setBoundsSize(QSize newSize);
62
63private:
64 QImage m_qimage;
68 qreal m_currentScale = 1;
69};
70
71#endif // IMAGEITEM_H
Definition imageitem.h:33
void paint(QPainter *painter) override
Definition imageitem.cpp:47
QImage m_sourceImage
Definition imageitem.h:65
QImage sourceImage
Definition imageitem.h:40
QSize boundsSize
Definition imageitem.h:39
void sizeChanged(QSizeF size)
Q_INVOKABLE void fitToBounds()
Definition imageitem.cpp:109
QSize m_boundsSize
Definition imageitem.h:67
void boundsSizeChanged()
QSize m_sourceSize
Definition imageitem.h:66
Q_INVOKABLE void setImage(const QImage &image)
Definition imageitem.cpp:38
ImageItem(QQuickItem *parent=nullptr)
Definition imageitem.cpp:29
Q_INVOKABLE void saveSourceImage(const QString &url)
Definition imageitem.cpp:103
void setBoundsSize(QSize newSize)
Definition imageitem.cpp:119
QSize sourceSize
Definition imageitem.h:38
QImage m_qimage
Definition imageitem.h:43
qreal m_currentScale
Definition imageitem.h:68
void sourceSizeChanged()
void sourceImageChanged()