1通过函数传参的方式控制按钮中文字的大小、位置,按钮中图片的位置和大小。
2.主要的部分都在paintEvent里完成。在paintEvent里用drawPixmap绘制图片,用drawText绘制文字。
void IconToolButton::paintEvent(QPaintEvent *event)
{
QToolButton::paintEvent(event);
QPainter p(this);
//p.fillRect(rect(), QColor(0, 0, 0, 173));
if (!m_currentPixmap.isNull()) {
p.drawPixmap(QRect(m_pictureXPos, m_pictureYPos, m_currentPixmap.width(), m_currentPixmap.height())
, m_currentPixmap);
}
if(!m_text.isEmpty()) {
p.setPen(Qt::white);
if(m_flags != 0) {
p.drawText(QRect(m_textXPos, m_textYPos, width() - m_textXPos, height() - m_textYPos),
m_flags, m_text);
} else {
p.drawText(QPoint(m_textXPos, m_textYPos), m_text);
}
}
if(!m_anotherText.isEmpty()) {
p.setFont(m_anotherFont);
p.setPen(Qt::white);
p.drawText(QPoint(m_anotherTextXPos, m_anotherTextYPos), m_anotherText);
}
}