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

Qt绘制文本一的更多相关文章

  1. Qt绘制文本二 弯曲排列和旋转效果 弧形路径 正弦函数路径

    void WgtText::paintEvent(QPaintEvent *event) { QPainter painter(this); QString m_string("abcdef ...

  2. Qt之图形(绘制文本)

    简述 前面我们讲解了Qt图形的基本绘制,其中包括: 绘制文本.直线.直线.矩形.弧线.椭圆.多边形.图片,以及其它一些高级用法,比如:渐变.转换等. 本节我们来详细讲解文字的绘制.主要通过QPaint ...

  3. html5 canvas 笔记三(绘制文本和图片)

    绘制文本 fillText(text, x, y [, maxWidth])   在指定的(x,y)位置填充指定的文本,绘制的最大宽度是可选的. strokeText(text, x, y [, ma ...

  4. FontMetrics ----- 绘制文本,获取文本高度

    Canvas 绘制文本时,使用FontMetrics对象,计算位置的坐标. public static class FontMetrics { /** * The maximum distance a ...

  5. 使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容

    原文:使用WebBrowser控件时在网页元素上绘制文本或其他自定义内容 第一次在CNBlogs上发Post是提出一个有关使用WebBrowser控件时对SELECT网页元素操作的疑惑,这个问题至今也 ...

  6. Quartz2D 之 绘制文本

    1. 基础概念 1.1. 字体(Font) 同一大小.同一样式的字形的集合. 1.2. 字符(Character) 字符表示信息本身,一般指某种编码,如Unicode编码. 1.3. 字形(Glyph ...

  7. 使用GDI绘制文本

    /// <summary>        /// 定义一个绘制文本        /// </summary>        public void Texts()       ...

  8. 『备注』GDI+ 绘制文本有锯齿,透明背景文本绘制

    背景: GDI+ 绘制文本 时,如果 背景是透明的 —— 则会出现 锯齿. //其实,我不用这三个 属性 好多年了 //而且,这三个属性 在关键时刻还有可能 帮倒忙 //关键是:这三个属性,鸟用都没有 ...

  9. Javascript高级编程学习笔记(88)—— Canvas(5)绘制文本

    绘制文本 同样的,canvas也为绘制文本提供了相应的方法. 2D上下文提供的文本绘制方法主要有两个: fillText() strokeText() 这两个方法都接受四个参数 要绘制的文本字符串 绘 ...

随机推荐

  1. UIUseImgWindow

    using System;using UnityEngine;using UnityEngine.UI;using UnityEditor;using System.Collections;using ...

  2. C.字符串(字符)操作

    1.memchr 检测的是一段内存,strchr 检测的是一个字符串 如果一段内存中有0x0的话,显然不能用strchr去查找的.建议看看两个函数的原型 strchr会停在 '\0',memchr不会 ...

  3. 力扣(LeetCode)258. 各位相加

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 是一位数,所 ...

  4. 使用git命令行解决冲突

    文章转载自:https://blog.csdn.net/sureSand/article/details/78765727 使用git和提交的代码有所冲突,用IDE自带的git工具功能多了反而不知道怎 ...

  5. CSS/让一个盒子消失的5中方法

    1.display:none; 2.visibility:hidden;     //这种方法隐藏了还是会占位的 3.raba(0,0,0,0.5);     //可以调节a来改变透明度   a的取值 ...

  6. html+css+js实现类似音乐app似的列表播放

    最近做了一个类似于音乐app里面列表播放的功能,主要是音频播放和按钮状态的联动: 界面如下: 如上图所示 上面有一个播放按钮 下面有一个播放列表 上面还有一个歌曲长度的总时长 上面一个按钮能控制下面所 ...

  7. python读写json文件(转)

    https://www.cnblogs.com/bigberg/p/6430095.html 利用python中的json库处理数据(包含json的四种方法:dumps.dump.loads.load ...

  8. 启动node程序报错:event.js:183 throw er; // unhandled 'error' event

    启动node程序时,报如下错误:

  9. 基于AngularJS的Onsen UI --Onsen UI学习笔记

    AngularJS与Onsen UI的结合,Onsen UI应用程序实际上是一个AngularJS 1应用程序. <!doctype html><html lang="en ...

  10. CentOS上安装seafile

    一.安装python2.7.14(CentOS7上python默认版本是Python 2.7.5 ,不需要安装)1.安装依赖包[root@web01 ~]# yum -y install zlib z ...