52 lines
1.1 KiB
C++
52 lines
1.1 KiB
C++
|
|
/*
|
|
功能:界面中的饱和度(S)与亮度(V)区域
|
|
大小256 * 256
|
|
*/
|
|
|
|
#ifndef SVCOLORAREA_H
|
|
#define SVCOLORAREA_H
|
|
|
|
#include <QWidget>
|
|
|
|
class SVColorArea : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
SVColorArea(QWidget *parent);
|
|
~SVColorArea();
|
|
void setHue(int);
|
|
void setSaturation(int);
|
|
void setBrightness(int);
|
|
void setHsv(int, int, int);
|
|
void setColor(const QColor &);
|
|
|
|
protected:
|
|
void paintEvent(QPaintEvent *); //paint事件
|
|
void mousePressEvent(QMouseEvent *); //鼠标按下事件
|
|
void mouseMoveEvent(QMouseEvent *); //鼠标移动事件
|
|
|
|
private:
|
|
void drawSVPixmap();
|
|
void createVPixmap(); //创建亮度渐变的pixmap
|
|
void createSVPixmap(); //创建正方形区域的pixmap
|
|
void updateSVPixmap(); //更新正方形区域的pixmap
|
|
|
|
public slots:
|
|
void hueChangedSlot(int);
|
|
|
|
signals:
|
|
void svChangedSignal(int, int, int);
|
|
|
|
private:
|
|
int m_iHue;
|
|
int m_iSaturation;
|
|
int m_iBrightness;
|
|
const int m_iAreaWidth; //正方形区域的宽度
|
|
QPixmap m_svPixmap; //正方形区域的pixmap
|
|
QPixmap m_vPixmap; //亮度渐变的pixmap
|
|
};
|
|
|
|
#endif // SVCOLORAREA_H
|