24 #include <QApplication> 25 #include <QPushButton> 26 #include <QStyleOption> 30 #include <QPaintEvent> 38 : QPushButton(parent), _pix(pix), _pixmargin(2), _xalignfactor(0.5f), _yalignfactor(0.5f), _pixscale(1.f)
43 _pixscale = parent->devicePixelRatio();
59 QStyleOptionButton opt;
60 initStyleOption(&opt);
63 w = _pix.
width() / _pixscale + _pixmargin;
64 h = _pix.
height() / _pixscale + _pixmargin;
67 w +=
style()->pixelMetric(QStyle::PM_MenuButtonIndicator, &opt,
this);
70 return (
style()->sizeFromContents(QStyle::CT_PushButton, &opt,
QSize(w, h),
this).
71 expandedTo(QApplication::globalStrut()).expandedTo(
QSize(50, 30)));
77 QPushButton::paintEvent(event);
80 QSizeF pixsz = _pix.
size(); pixsz /= _pixscale;
82 _yalignfactor*(height()-(2*_pixmargin+pixsz.
height())) + _pixmargin ),
Base declarations for klatexformula and some utilities.
const QRect & rect() const
void drawPixmap(const QRectF &target, const QPixmap &pixmap, const QRectF &source)
void setClipRect(const QRectF &rectangle, Qt::ClipOperation operation)