The QtColorTriangle class provides a triangular color selection widget. More...
#include <qtcolortriangle.h>
Public Slots | |
void | setColor (const QColor &col) |
Signals | |
void | colorChanged (const QColor &col) |
Public Member Functions | |
QtColorTriangle (QWidget *parent=0) | |
~QtColorTriangle () | |
QSize | sizeHint () const |
int | heightForWidth (int w) const |
void | polish () |
QColor | color () const |
Protected Member Functions | |
void | paintEvent (QPaintEvent *) |
void | mouseMoveEvent (QMouseEvent *) |
void | mousePressEvent (QMouseEvent *) |
void | mouseReleaseEvent (QMouseEvent *) |
void | keyPressEvent (QKeyEvent *e) |
void | resizeEvent (QResizeEvent *) |
void | drawTrigon (QImage *p, const QPointF &a, const QPointF &b, const QPointF &c, const QColor &color) |
void | internalSetNewColor (const QColor &color) |
Properties | |
QColor | color |
The QtColorTriangle class provides a triangular color selection widget.
This widget uses the HSV color model, and is therefore useful for selecting colors by eye.
The triangle in the center of the widget is used for selecting saturation and value, and the surrounding circle is used for selecting hue.
Use setColor() and color() to set and get the current color.
Definition at line 79 of file qtcolortriangle.h.
QtColorTriangle::QtColorTriangle | ( | QWidget * | parent = 0 | ) |
Constructs a color triangle widget with the given parent.
Definition at line 135 of file qtcolortriangle.cpp.
References setColor(), QColor::setHsv(), and QWidget::setSizePolicy().
QtColorTriangle::~QtColorTriangle | ( | ) |
Destructs the color triangle.
Definition at line 151 of file qtcolortriangle.cpp.
QColor QtColorTriangle::color | ( | ) | const |
QtColorTriangle::colorChanged | ( | const QColor & | color | ) | [signal] |
Whenever the color triangles color changes this signal is emitted with the new color.
Referenced by internalSetNewColor().
void QtColorTriangle::drawTrigon | ( | QImage * | buf, |
const QPointF & | pa, | ||
const QPointF & | pb, | ||
const QPointF & | pc, | ||
const QColor & | color | ||
) | [protected] |
Draws a trigon (polygon with three corners pa, pb and pc and three edges), using painter.
Fills the trigon with a gradient, where the pa point has the color color, pb is black and bc is white. Bilinear gradient.
Definition at line 615 of file qtcolortriangle.cpp.
References DoubleColor::b, Vertex::color, DoubleColor::g, Vertex::point, DoubleColor::r, QVarLengthArray::resize(), QImage::scanLine(), swap(), QPointF::x(), and QPointF::y().
Referenced by paintEvent().
int QtColorTriangle::heightForWidth | ( | int | w | ) | const |
Forces the triangle widget to always be square. Returns the value w.
Definition at line 198 of file qtcolortriangle.cpp.
void QtColorTriangle::internalSetNewColor | ( | const QColor & | color | ) | [protected] |
Definition at line 599 of file qtcolortriangle.cpp.
References colorChanged().
Referenced by mouseMoveEvent(), mousePressEvent(), and setColor().
void QtColorTriangle::keyPressEvent | ( | QKeyEvent * | e | ) | [protected] |
Reimplemented from QWidget.
Definition at line 438 of file qtcolortriangle.cpp.
References QColor::getHsv(), QKeyEvent::key(), setColor(), and QColor::setHsv().
void QtColorTriangle::mouseMoveEvent | ( | QMouseEvent * | e | ) | [protected] |
Selects new hue or saturation/value values, depending on where the mouse button was pressed initially.
Reimplemented from QWidget.
Definition at line 266 of file qtcolortriangle.cpp.
References QColor::alpha(), QWidget::contentsRect(), QColor::getHsv(), internalSetNewColor(), PI, Vertex::point, QMouseEvent::pos(), QColor::setHsv(), swap(), TWOPI, QWidget::update(), and QPointF::y().
void QtColorTriangle::mousePressEvent | ( | QMouseEvent * | e | ) | [protected] |
When the left mouse button is pressed, this function determines what part of the color triangle the cursor is, and from that it initiates either selecting the hue (outside the triangle's area) or the saturation/value (inside the triangle's area).
Reimplemented from QWidget.
Definition at line 347 of file qtcolortriangle.cpp.
References QColor::alpha(), QWidget::contentsRect(), QColor::getHsv(), internalSetNewColor(), PI, Vertex::point, QMouseEvent::pos(), QColor::setAlpha(), QColor::setHsv(), swap(), TWOPI, QWidget::update(), and QPointF::y().
void QtColorTriangle::mouseReleaseEvent | ( | QMouseEvent * | e | ) | [protected] |
Stops selecting of colors with the mouse.
Reimplemented from QWidget.
Definition at line 429 of file qtcolortriangle.cpp.
void QtColorTriangle::paintEvent | ( | QPaintEvent * | e | ) | [protected] |
(reimplemented)
First copies a background image of the hue donut and its background color onto the frame, then draws the color triangle, and finally the selectors.
Reimplemented from QWidget.
Definition at line 533 of file qtcolortriangle.cpp.
References QWidget::contentsRect(), QImage::copy(), QPainter::drawEllipse(), QPainter::drawLine(), QPainter::drawPixmap(), drawTrigon(), QPixmap::fromImage(), QColor::getHsv(), QColor::getRgb(), QPaintEvent::rect(), QPaintEvent::region(), QPainter::setClipRegion(), QColor::setHsv(), QPainter::setPen(), QPainter::setRenderHint(), QPointF::x(), and QPointF::y().
void QtColorTriangle::polish | ( | ) |
Generates the first background image.
Reimplemented from QWidget.
Definition at line 160 of file qtcolortriangle.cpp.
References QWidget::contentsRect(), and QWidget::update().
void QtColorTriangle::resizeEvent | ( | QResizeEvent * | ) | [protected] |
Regenerates the background image and sends an update.
Reimplemented from QWidget.
Definition at line 499 of file qtcolortriangle.cpp.
References QWidget::contentsRect(), and QWidget::update().
void QtColorTriangle::setColor | ( | const QColor & | col | ) | [slot] |
Sets the color of the triangle to col.
Definition at line 815 of file qtcolortriangle.cpp.
References QWidget::contentsRect(), QColor::getHsv(), internalSetNewColor(), PI, TWOPI, and QWidget::update().
Referenced by keyPressEvent(), and QtColorTriangle().
QSize QtColorTriangle::sizeHint | ( | ) | const |
(reimplemented)
Definition at line 189 of file qtcolortriangle.cpp.
QColor QtColorTriangle::color [read, write] |
Returns the current color of the triangle.
Definition at line 83 of file qtcolortriangle.h.