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);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM