• 1352阅读
  • 1回复

用QStyle->drawControl绘制QPushbotton怎样绘制带下划线的按钮? [复制链接]

上一主题 下一主题
离线oushliang
 

只看楼主 倒序阅读 楼主  发表于: 2020-08-11
— 本帖被 20091001753 从 Qt 作品展 移动到本区(2020-08-11) —

用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);
理想效果是:

离线青空飞羽

只看该作者 1楼 发表于: 2020-08-12
这个就是给按钮的文本添加下划线嘛,用qss就能实现:text-decoration: underline;
快速回复
限100 字节
 
上一个 下一个