From da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9 Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Wed, 8 Sep 2010 09:23:18 +0000 Subject: add Gui Client example --- examples/GuiClient/customToolButton.cpp | 51 +++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 examples/GuiClient/customToolButton.cpp (limited to 'examples/GuiClient/customToolButton.cpp') diff --git a/examples/GuiClient/customToolButton.cpp b/examples/GuiClient/customToolButton.cpp new file mode 100644 index 00000000..ba92b923 --- /dev/null +++ b/examples/GuiClient/customToolButton.cpp @@ -0,0 +1,51 @@ +#include "customToolButton.h" +#include +#include +#include + +customToolButton::customToolButton(QWidget* parent) : QToolButton(parent) +{ + setMinimumSize(QSize(20, 18)); +} + +void customToolButton::paintEvent(QPaintEvent* event) +{ + Q_UNUSED(event); + QPainter painter(this); + QStyleOptionToolButton panel; + initStyleOption(&panel); + style()->drawPrimitive(QStyle::PE_PanelButtonTool, &panel, &painter, this); + QRect r = rect(); + QFont font; + painter.setFont(font); + painter.setPen(Qt::gray); + + QRect rectSize(0, 0, sizeHint().width(), sizeHint().height()); + rectSize.moveCenter(r.center()); + r = rectSize; + r.adjust(0, 0, -1, -1); + painter.setPen(Qt::black); + painter.setBrush(Qt::black); + r.moveLeft(r.left() + 3); + font.setBold(true); + painter.setFont(font); + painter.drawText(r, Qt::AlignVCenter|Qt::TextSingleLine, text()); + + QImage image(":/icons/resource/downArrow.png"); + QRect rectDelta(0, 0, 7, 4); + rectDelta.moveRight(r.right() - 4); + rectDelta.moveCenter(QPoint(rectDelta.center().x(), r.center().y())); + painter.drawImage(rectDelta, image); +} + +QSize customToolButton::sizeHint() const +{ + QFont font; + font.setBold(true); + QFontMetrics fm(font); + int width = fm.width(text()); + if(width <= (160 - 8 - 9)) + return QSize(width+8+9, 18); + else + return QSize(160, 18); +} -- cgit v1.2.3