18 #include "LineEditWithButton.h"
19 #include <QToolButton>
22 LineEditWithButton::LineEditWithButton(QWidget *parent,
23 const QString &iconPath) :
24 QLineEdit(parent), iconPath(iconPath)
27 this->mButton =
new QToolButton(
this);
30 this->mButton->setText(
"...");
31 this->mButton->setCursor(Qt::ArrowCursor);
32 this->mButton->setStyleSheet(this->buttonStyleSheetForCurrentState());
35 this->setStyleSheet(this->styleSheetForCurrentState());
45 QObject::connect(this->mButton, SIGNAL(clicked()), SIGNAL(buttonPressed()));
48 void LineEditWithButton::resizeEvent(QResizeEvent *event)
51 QSize size = this->mButton->sizeHint();
52 int frameWidth = this->style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
54 this->rect().right() - frameWidth - size.width() - 2,
55 (this->rect().bottom() + 2 - size.height()) / 2);
58 QString LineEditWithButton::styleSheetForCurrentState()
const
60 int frameWidth = this->style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
63 style +=
"QLineEdit {";
68 style +=
"font-size: 11px;";
72 style += QString(
"padding-right: %1px;").arg(
73 this->mButton->sizeHint().width() + frameWidth + 1);
85 QString LineEditWithButton::buttonStyleSheetForCurrentState()
const