00. 目录

文章目录

  • 00. 目录
  • 01. 概述
  • 02. 开发环境
  • 03. 基本绘制
  • 04. 使用范围绘制文字
  • 05. 使用字体绘制文字
  • 06. 附录

01. 概述

Qt中除了绘制图形以外,还可以使用QPainter::darwText()函数来绘制文字,也可以使用QPainter::setFont()设置文字所使用的字体,使用QPainter::fontInfo()函

数可以获取字体的信息,它返回QFontInfo类对象。在绘制文字时会默认使用抗锯齿。

02. 开发环境

Windows系统:Windows10

Qt版本:Qt5.15或者Qt6

03. 基本绘制

程序示例

void Widget::paintEvent(QPaintEvent *)
{QPainter painter(this);painter.drawText(100, 100, "hello Qt");
}

执行结果

在(100, 100)的位置绘制了一个字符串。

04. 使用范围绘制文字

函数原型:

第一个参数指定了绘制文字所在的矩形;第二个参数指定了文字在矩形中的对齐方式,它由Qt::AlignmentFlag枚举类型进行定义,不同对齐方式也可以使用“|”操作符同时使用,这里还可以使用Qt::TextFlag定义的其他一些标志,比如自动换行等;第三个参数就是所要绘制的文字,这里可以使用“\n”来实现换行;第四个参数一般不用设置。

程序示例

void Widget::paintEvent(QPaintEvent *)
{QPainter painter(this);//设置一个矩形QRectF rect(50, 50, 300, 240);painter.drawRect(rect);painter.setPen(QColor(Qt::red));//水平居中显示 垂直居中painter.drawText(rect, Qt::AlignHCenter | Qt::AlignVCenter, "hello Qt");}

执行结果

05. 使用字体绘制文字

为了绘制漂亮的文字,可以使用QFont类来设置文字字体。

程序示例

void Widget::paintEvent(QPaintEvent *)
{QPainter painter(this);QFont font("黑体", 15, QFont::Bold, true);//设置下划线font.setUnderline(true);//设置上划线font.setOverline(true);//设置字母大小写font.setCapitalization(QFont::SmallCaps);//设置字符间距font.setLetterSpacing(QFont::AbsoluteSpacing, 10);//使用字体painter.setFont(font);painter.setPen(Qt::blue);painter.drawText(120, 80, tr("hello qt"));painter.translate(50, 50);painter.rotate(90);painter.drawText(0, 0, tr("湖北武汉"));}

创建了QFont字体对象,使用的构造函数为QFont::QFont ( const QString & family,int pointSize = -1, int weight = -1, bool italic = false ),第一个参数设置字体的family属性,这里使用的字体族为黑体,可以使用QFontDatabase类来获取所支持的所有字体;第二个参数是点大小,默认大小为12;第三个参数为weight属性,这里使用了粗体;最后一个属性设置是否使用斜体。然后我们又使用了其他几个函数来设置字体的格式,最后调用setFont()函数来使用该字体,并使用drawText()函数的另一种重载形式在点(120, 80)绘制了文字。后面又将坐标系统平移并旋转,然后再次绘制了文字。运行程序,效果如下图所示。

06. 附录

源码下载:【Qt】2D绘图之绘制文字.rar

【Qt】2D绘图之绘制文字相关推荐

  1. 【Qt】2D绘图之绘制图像(二)

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制QImage图像 04. 绘制QPixmap图像 05. 绘制QPicture图像 06. 综合对比 07. 附录 0 ...

  2. 【Qt】2D绘图之绘制图片

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 简单绘制图片 04. 平移图片 05. 缩放图片 06. 旋转图片 07. 扭曲图片 08. 附录 01. 概述 Qt提供 ...

  3. 【Qt】2D绘图之绘制路径

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制简单路径 04. 复制图形路径 05. 位置问题探讨 06. 附录 01. 概述 如果要绘制一个复杂的图形,尤其是要重 ...

  4. 【Qt】2D绘图之绘制简单的图形

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制图形 04. 画笔和画刷 05. 绘制弧线 06. 附录 01. 概述 Qt中提供了强大的2D绘图系统,可以使用同一A ...

  5. Qt 2D绘图(5):绘制图像基础

    Qt 2D绘图(5):绘制图像基础 本文为原创文章,转载请注明出处,或注明转载自"黄邦勇帅(原名:黄勇) 本文出自本人原创著作<Qt5.10 GUI完全参考手册>网盘地址: ht ...

  6. Qt 2D绘图功能简单总结

    文章目录 Qt 2D绘图功能简单总结 Qt 2D绘图功能简单总结 Qt 的绘图功能非常强大,它可以绘制一切想要的图形,从最简单的一条直线到其他任何复杂的图形,还可以用来绘制文本和图片. Qt的绘图系统 ...

  7. Qt 2D绘图之二:抗锯齿渲染和坐标系统

    一.抗锯齿渲染 1.1 逻辑绘图 图形基元的大小(宽度和高度)始终与其数学模型相对应,下图示意了忽略其渲染时使用的画笔的宽度的样子. 1.2 物理绘图(默认情况) 在默认的情况下,绘制会产生锯齿,并且 ...

  8. Qt中国象棋一—— Qt 2D 绘图入门

    最近想用Qt写一个中国象棋的项目,在网上找了几个例子后,发现关于绘图部分基础为0 ,于是根据项目需要学习一下.查了一些网上的资料,在此总结一下:我比较喜欢的方式是用到什么学什么,或者自己想做一个东西, ...

  9. 32 Qt 之绘图之绘制一个漂亮的西瓜

    简笔画 我们先简单看看西瓜的基本组成,一步步进行拆分.组合. 绘制 效果 具体的效果如下所示,我们可以再进行更好的完善. 源码 主要分为以下三部: 绘制外圆(绿色部分) 绘制内圆(红色部分) 绘制椭圆 ...

最新文章

  1. 毕业设计《MMORPG DEMO》——1
  2. boost::range_pointer相关的测试程序
  3. Java集合unmodifiableMap()方法及示例
  4. 使用exp命令实现Oracle数据备份(数据导出)
  5. java 套接字 访问tcp_Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
  6. 本地更新github项目_【图文说明】将本地项目上传到github上
  7. 谷歌放弃go_盘点国内可以使用的十种谷歌服务
  8. 混淆矩阵评价指标_机器学习模型评价指标 -- 混淆矩阵
  9. RDKit化学式 分子式搜索
  10. 3.4 常用的两种 layer 层 3.7 字体与文本
  11. SEO小白学习与实践(一):seo学习缘起、目标
  12. ASEMI整流桥S25VB100,S25VB100参数,S25VB100应用
  13. 十大经典的心理学效应
  14. 见习后的感想之关于献血
  15. Latex带序号的项目符号列表
  16. 二维快速傅里叶逆变换
  17. 数论题中(杜教筛)交换求和符号
  18. IP第十天笔记 - - - BGP
  19. NC/ncat的使用
  20. 基础概念之电路板的概念

热门文章

  1. 计算机科学与技术专家报告内容,计算机科学与技术专业设计报告大学内容.docx...
  2. java 检测ie版本更新_[Java教程]有关IE版本检测_星空网
  3. linux设备和驱动注册,Linux驱动第五篇-----驱动注册和生成设备节点
  4. Java黑皮书课后题第4章:4.16(随机字符)编写一个程序,使用Math.random()方法显示一个随机的大写字母
  5. session与cookie的简单使用
  6. 数据结构与算法一 - 二叉树基础
  7. CentOS 编译安装 Nodejs (实测 笔记 Centos 7.3 + node 6.9.5)
  8. jQuery从入门到忘记
  9. 用Code::Blocks Code profiler插件剖析程序性能
  10. 查看oracle数据库的连接数以及用户