Пример #1
0
///
/// \brief 绘制左上角按钮
/// \param painter 设置好绘制设备的painter
/// \param btn 左上角按钮,左上角按钮指针,Painter已经把此按钮设置为此绘制设备
///
void DTableWidgetEx::paintConnerButton(QStylePainter &painter,QAbstractButton* btn)
{
    QStyleOptionHeader opt;
    opt.init(btn);
    QStyle::State state = QStyle::State_None;
    if (btn->isEnabled())
        state |= QStyle::State_Enabled;
    if (btn->isActiveWindow())
        state |= QStyle::State_Active;
    if (btn->isDown())
        state |= QStyle::State_Sunken;
    opt.state = state;
    opt.rect = btn->rect();
    opt.text = btn->text(); // this line is the only difference to QTableCornerButton

    opt.position = QStyleOptionHeader::OnlyOneSection;
    painter.drawControl(QStyle::CE_Header, opt);
}