用QStyle->drawControl绘制QPushbotton怎样绘制带下划线的
按钮?
这代码绘制出来不带下划线:
QStyleOptionButton buttonm;
int tp= (option.rect.height() - MOREBTN_H) / 2;
int lef = option.rect.left() + nHalf;
buttonm.rect = QRect(lef,option.rect.top() + tp, MOREBTN_W, MOREBTN_H);
buttonm.state |= QStyle::State_Enabled;
if (buttonm.rect.contains(m_mousePoint))
{
(m_nType == 0)?
buttonm.state |= QStyle::State_MouseOver:
buttonm.state |= QStyle::State_Sunken;
}
buttonm.text =
QString::fromLocal8Bit("详情");
QFont font;
font.setFamily("Microsoft YaHei");
font.setPixelSize(20);
font.setUnderline(true);
painter->setFont(font);
QWidget *pWidget = m_pMoreButton.data();
m_pMoreButton->style()->drawControl(QStyle::CE_PushButton, &buttonm, painter, pWidget);
理想效果是: