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