DrawText 根据字符长度、宽度 设置控件大小

来源:互联网 发布:万网域名证书在哪里 编辑:程序博客网 时间:2024/06/07 06:45

        //设置字体

void QMyLable::paintEvent(QPaintEvent *)

{

      QRect lrect = rect();

         QFont font;

    font.setPointSize(25);
    //设置下划线
    font.setUnderline(true);
    //设置大小写
    font.setCapitalization(QFont::SmallCaps);
    //设置间距
    font.setLetterSpacing(QFont::AbsoluteSpacing,5);
 
    QPainter painter(this);
//设置drawText 字体
    painter.setFont(font);
//取字符窜长度,高度
 
    QFontMetrics fm = painter.fontMetrics();
    int sWidth = fm.width(m_Text);
    int sHeight = fm.ascent()+fm.descent();
//如果显示不开,扩充调整控件大小
 
   
    if (lrect.width()<sWidth)
    {
         resize(sWidth,lrect.height());
    }
   
    if(!m_Text.isEmpty())
    {
        QColor clr(Qt::black);
        QPen pen(clr);
        painter.drawText(lrect,Qt::AlignBottom|Qt::AlignLeft,m_Text);
    }
 
 
 
原创粉丝点击