Mercurial > trustbridge
view ui/textoverlaybutton.cpp @ 879:59fc7ececa5f
Reference bug id for font database problem
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Thu, 07 Aug 2014 19:19:36 +0200 |
parents | a467204a35f5 |
children | 57371f2e8dae |
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" || mOverlay.isEmpty()) { 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; }