Added CanvasWidget

This commit is contained in:
Daniel Brunner
2018-12-16 22:18:07 +01:00
parent e21b325a30
commit e9ecd0d1c9
3 changed files with 58 additions and 0 deletions

View File

@@ -1,6 +1,12 @@
project(DbGuiLib)
find_package(Qt5Core CONFIG REQUIRED)
find_package(Qt5Gui CONFIG REQUIRED)
find_package(Qt5Widgets CONFIG REQUIRED)
find_package(Qt5LinguistTools CONFIG REQUIRED)
set(HEADERS
canvaswidget.h
dbguilib_global.h
editorfactory.h
ledindicator.h
@@ -15,6 +21,7 @@ set(HEADERS
)
set(SOURCES
canvaswidget.cpp
editorfactory.cpp
ledindicator.cpp
matrix4x4widget.cpp

30
canvaswidget.cpp Normal file
View File

@@ -0,0 +1,30 @@
#include "canvaswidget.h"
// Qt includes
#include <QPainter>
CanvasWidget::CanvasWidget(QWidget *parent) :
QWidget(parent)
{
}
void CanvasWidget::setImage(const QImage &image)
{
m_image = image;
repaint();
}
void CanvasWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event)
const double scale = std::min(double(width()) / m_image.width(),
double(height()) / m_image.height());
const QRect imageRect(QPoint(), m_image.size() * scale);
QPainter painter;
painter.begin(this);
painter.drawImage(imageRect, m_image);
painter.end();
}

21
canvaswidget.h Normal file
View File

@@ -0,0 +1,21 @@
#pragma once
#include "dbguilib_global.h"
#include <QWidget>
#include <QImage>
class DBGUILIB_EXPORT CanvasWidget : public QWidget
{
public:
explicit CanvasWidget(QWidget *parent = Q_NULLPTR);
public Q_SLOTS:
void setImage(const QImage &image);
protected:
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
private:
QImage m_image;
};