3 #include <QStylePainter> 4 #include <QStyleOptionFocusRect> 18 QAbstractButton(parent)
20 setCursor(Qt::ArrowCursor);
21 setFocusPolicy(Qt::NoFocus);
32 #if QT_VERSION >= 0x050100 33 const qreal pixmapRatio = m_pixmap.devicePixelRatio();
35 const qreal pixmapRatio = 1.0;
37 return QSize(m_pixmap.width() / pixmapRatio, m_pixmap.height() / pixmapRatio);
42 #if QT_VERSION >= 0x050100 43 const qreal pixmapRatio = m_pixmap.devicePixelRatio();
45 const qreal pixmapRatio = 1.0;
47 QStylePainter painter(
this);
48 QRect pixmapRect = QRect(0, 0, m_pixmap.width() / pixmapRatio, m_pixmap.height() / pixmapRatio);
49 pixmapRect.moveCenter(rect().center());
50 painter.drawPixmap(pixmapRect, m_pixmap);
52 QStyleOptionFocusRect focusOption;
53 focusOption.initFrom(
this);
54 focusOption.rect = pixmapRect;
56 focusOption.rect.adjust(-4, -4, 4, 4);
57 painter.drawControl(QStyle::CE_FocusFrame, focusOption);
59 painter.drawPrimitive(QStyle::PE_FrameFocusRect, focusOption);
66 QAbstractButton::keyPressEvent(event);
67 if (!event->modifiers() && (
event->key() == Qt::Key_Enter ||
event->key() == Qt::Key_Return)) {
75 QAbstractButton::keyReleaseEvent(event);