• Qt绘制文本一


    QPainterPath,使用 drawText且设置字体,再使用painter.drawText方式

    效果图:

    void WgtText::paintEvent(QPaintEvent *event)
    {
    
    
        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing, true);
        //painter.setPen(QPen(Qt::black, 2));
        painter.setBrush(QBrush(Qt::blue, Qt::SolidPattern));
        //painter.setPen(QPen(Qt::red, 2));
    
    
        QFont font;
        font.setFamily("Microsoft YaHei");
        // 大小
        font.setPointSize(20);
        // 斜体
        font.setItalic(true);
        // 设置下划线
        font.setUnderline(true);
        // 设置上划线
        font.setOverline(true);
        // 设置字母大小写
        font.setCapitalization(QFont::SmallCaps);
        // 设置字符间距
        font.setLetterSpacing(QFont::AbsoluteSpacing, 20);
        // 设置加粗
        font.setBold(true);
        // 使用字体
        painter.setFont(font);
    
    
        QPainterPath path;
        path.addText(QPointF(100,100), font, "Qt");
        painter.drawPath(path);
    
    
    
    
        return QWidget::paintEvent(event);
    
    
    }

    =========================================================================================================
    QPainterPath,使用 drawText且设置字体,再使用painter.drawText方式,
    效果图:

    void WgtText::paintEvent(QPaintEvent *event)
    {
    
    
        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing, true);
        painter.setPen(QPen(Qt::black, 2));
        //painter.setBrush(QBrush(Qt::blue, Qt::SolidPattern));
        //painter.setPen(QPen(Qt::red, 2));
    
    
        QFont font;
        font.setFamily("Microsoft YaHei");
        // 大小
        font.setPointSize(20);
        // 斜体
        font.setItalic(true);
        // 设置下划线
        font.setUnderline(true);
        // 设置上划线
        font.setOverline(true);
        // 设置字母大小写
        font.setCapitalization(QFont::SmallCaps);
        // 设置字符间距
        font.setLetterSpacing(QFont::AbsoluteSpacing, 20);
        // 设置加粗
        font.setBold(true);
        // 使用字体
        painter.setFont(font);
    
    
        QPainterPath path;
        path.addText(QPointF(100,100), font, "Qt");
        painter.drawPath(path);
    
    
    
    
        return QWidget::paintEvent(event);
    
    
    }
    -----------------------------------------------------------
    使用画笔直接绘制文本

    
    
    void WgtText::paintEvent(QPaintEvent *event)
    {
    
    
        QPainter painter(this);
        painter.setRenderHint(QPainter::Antialiasing, true);
        painter.setPen(QPen(QColor(0,0,255)));
    
    
        QFont font;
        font.setFamily("Microsoft YaHei");
        // 大小
        font.setPointSize(20);
        // 斜体
        font.setItalic(true);
        // 设置下划线
        font.setUnderline(true);
        // 设置上划线
        font.setOverline(true);
        // 设置字母大小写
        //font.setCapitalization(QFont::SmallCaps);
        // 设置字符间距
        font.setLetterSpacing(QFont::AbsoluteSpacing, 20);
        // 设置加粗
        font.setBold(false);
        // 使用字体
        painter.setFont(font);
        painter.drawText(QPointF(100,100), "Qt");
    
    
        return QWidget::paintEvent(event);
    }
  • 相关阅读:
    常见名词解释
    主板结构解析
    计算机网络原理的总结
    Nginx的介绍
    优雅的python
    python小技巧
    python列表小程序
    学会浏览器查东西
    列表推导式
    深度优先算法与广度优先算法
  • 原文地址:https://www.cnblogs.com/zhangxuan/p/10138808.html
Copyright © 2020-2023  润新知