Mercurial > trustbridge
view ui/textoverlaybutton.cpp @ 740:8efd10afb883
No tabs accepted.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Fri, 04 Jul 2014 11:16:43 +0200 |
parents | c92eb6298dd7 |
children | a467204a35f5 |
line wrap: on
line source
/* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik * Software engineering by Intevation GmbH * * This file is Free Software under the GNU GPL (v>=2) * and comes with ABSOLUTELY NO WARRANTY! * See LICENSE.txt for details. */ #include <QPaintEvent> #include <QPainter> #include <QFont> #include <QApplication> #include <QDebug> #include "textoverlaybutton.h" void TextOverlayButton::paintEvent(QPaintEvent *e) { QToolButton::paintEvent(e); if (mOverlay == "0") { return; } QPainter painter(this); /* Only usable if opengl is used */ painter.setRenderHint(QPainter::HighQualityAntialiasing, true); /* Else */ painter.setRenderHint(QPainter::Antialiasing, true); QRect myRect = e->rect().translated(26, -29); // circle QLinearGradient gradient(myRect.topLeft(), myRect.bottomRight()); gradient.setColorAt(0, Qt::white); gradient.setColorAt(0.7, Qt::red); QBrush brush(gradient); painter.setBrush(brush); painter.setPen(Qt::white); painter.drawEllipse(75.5, 6, 20, 20); // font QFont font; font.setPixelSize(11); font.setWeight(QFont::Bold); painter.setFont(font); painter.drawText(myRect, Qt::AlignCenter | Qt::AlignVCenter, mOverlay); return; }