Ktam3874/pitx software guide – Kontron KTAM3874-pITX User Manual
Page 192

KTD-S0057-I
Page 188 Linux® Programming Examples (DebianTM)
KTAM3874/pITX Software Guide
QPainterPath shape () const
{
QPainterPath
path;
path.addEllipse (boundingRect ());
return
path;
}
void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *)
{
bool down = option->state & QStyle::State_Sunken;
QRectF r = boundingRect ();
QLinearGradient grad (r.topLeft (), r.bottomRight ());
grad.setColorAt (down ? 1 : 0, option->state & QStyle::State_MouseOver ? Qt::white : Qt::lightGray);
grad.setColorAt (down ? 0 : 1, Qt::darkGray);
painter->setPen
(Qt::darkGray);
painter->setBrush
(grad);
painter->drawEllipse
(r);
QLinearGradient grad2 (r.topLeft (), r.bottomRight ());
grad.setColorAt (down ? 1 : 0, Qt::darkGray);
grad.setColorAt (down ? 0 : 1, Qt::lightGray);
painter->setPen
(Qt::NoPen);
painter->setBrush
(grad);
if
(down)
painter->translate (2, 2);
painter->drawEllipse (r.adjusted (5, 5, -5, -5));
painter->drawPixmap
(-_pix.width
() / 2, -_pix.height () / 2, _pix);
}
signals:
void pressed ();
protected:
void mousePressEvent (QGraphicsSceneMouseEvent *)
{
emit pressed ();
update
();
}
void mouseReleaseEvent (QGraphicsSceneMouseEvent *)
{
update
();
}
private:
QPixmap
_pix;
};