CS代考计算机代写 #ifndef CANVASWIDGET_H

#ifndef CANVASWIDGET_H
#define CANVASWIDGET_H

#include
class QImage;
#include “airbrush.h”
#include “image.h”

class CanvasWidget : public QWidget
{
Q_OBJECT
public:
explicit CanvasWidget(QWidget *parent = nullptr);

bool loadFromPath( const QString& path );
bool saveToPath( const QString& path );

bool isModified() const { return modified; }
QColor getColor() const { return color; }
QImage getBrushImage() const;

signals:
void brushChanged( const QImage& brushImage ) const;

public slots:
void clear();
void setRadius(int r);
void setFlowRate(int f);
void setShape(const QString& str);
void setColor(const QColor& c);

protected:
void mousePressEvent(QMouseEvent *event) override;
void mouseMoveEvent(QMouseEvent *event) override;
void mouseReleaseEvent(QMouseEvent *event) override;
void paintEvent(QPaintEvent *event) override;
void resizeEvent(QResizeEvent *event) override;
void timerEvent(QTimerEvent *event) override;

private:
void brushAt(const QPoint &point);
void updateBrushImage();

bool modified;

graphics101::Image image;
graphics101::Image airbrush_image;

int radius;
QColor color;
int flowRate;
graphics101::AirBrushShape shape;

int flowRateTimerID;
bool painting;
QPoint lastPos;
};

#endif // CANVASWIDGET_H

Posted in Uncategorized

Leave a Reply

Your email address will not be published. Required fields are marked *