您的位置:首页 > 其它

同时显示图片和文字,重绘QPushButton,让button大小适应图片大小

2016-04-12 12:16 1006 查看
MPushButton::MPushButton(const QString& iconPath, const QString& text, QWidget* parent)
                        : QPushButton(parent)
{
    m_text = text;    
    m_icon = QPixmap(iconPath);
    
    setFixedHeight(m_icon.size().height() + 15);
    setMinimumWidth(m_icon.size().width());

    m_drawedIconRect.setX((rect().x() - m_icon.rect().x()) / 2);
    m_drawedIconRect.setY(rect().y());
    m_drawedIconRect.setWidth(m_icon.rect().width());
    m_drawedIconRect.setHeight(m_icon.rect().height());
}

void MPushButton::paintEvent(QPaintEvent* e)
{
    QPainter painter(this);
    painter.drawPixmap(m_drawedIconRect, m_icon);
    painter.drawText(e->rect(), Qt::AlignHCenter | Qt::AlignBottom, m_text);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: