Added CanvasWidget
This commit is contained in:
@@ -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
30
canvaswidget.cpp
Normal 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
21
canvaswidget.h
Normal 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;
|
||||
};
|
Reference in New Issue
Block a user