【Qt】2D绘图之绘制文字
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绘图之绘制文字相关推荐
- 【Qt】2D绘图之绘制图像(二)
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制QImage图像 04. 绘制QPixmap图像 05. 绘制QPicture图像 06. 综合对比 07. 附录 0 ...
- 【Qt】2D绘图之绘制图片
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 简单绘制图片 04. 平移图片 05. 缩放图片 06. 旋转图片 07. 扭曲图片 08. 附录 01. 概述 Qt提供 ...
- 【Qt】2D绘图之绘制路径
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制简单路径 04. 复制图形路径 05. 位置问题探讨 06. 附录 01. 概述 如果要绘制一个复杂的图形,尤其是要重 ...
- 【Qt】2D绘图之绘制简单的图形
00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制图形 04. 画笔和画刷 05. 绘制弧线 06. 附录 01. 概述 Qt中提供了强大的2D绘图系统,可以使用同一A ...
- Qt 2D绘图(5):绘制图像基础
Qt 2D绘图(5):绘制图像基础 本文为原创文章,转载请注明出处,或注明转载自"黄邦勇帅(原名:黄勇) 本文出自本人原创著作<Qt5.10 GUI完全参考手册>网盘地址: ht ...
- Qt 2D绘图功能简单总结
文章目录 Qt 2D绘图功能简单总结 Qt 2D绘图功能简单总结 Qt 的绘图功能非常强大,它可以绘制一切想要的图形,从最简单的一条直线到其他任何复杂的图形,还可以用来绘制文本和图片. Qt的绘图系统 ...
- Qt 2D绘图之二:抗锯齿渲染和坐标系统
一.抗锯齿渲染 1.1 逻辑绘图 图形基元的大小(宽度和高度)始终与其数学模型相对应,下图示意了忽略其渲染时使用的画笔的宽度的样子. 1.2 物理绘图(默认情况) 在默认的情况下,绘制会产生锯齿,并且 ...
- Qt中国象棋一—— Qt 2D 绘图入门
最近想用Qt写一个中国象棋的项目,在网上找了几个例子后,发现关于绘图部分基础为0 ,于是根据项目需要学习一下.查了一些网上的资料,在此总结一下:我比较喜欢的方式是用到什么学什么,或者自己想做一个东西, ...
- 32 Qt 之绘图之绘制一个漂亮的西瓜
简笔画 我们先简单看看西瓜的基本组成,一步步进行拆分.组合. 绘制 效果 具体的效果如下所示,我们可以再进行更好的完善. 源码 主要分为以下三部: 绘制外圆(绿色部分) 绘制内圆(红色部分) 绘制椭圆 ...
最新文章
- 毕业设计《MMORPG DEMO》——1
- boost::range_pointer相关的测试程序
- Java集合unmodifiableMap()方法及示例
- 使用exp命令实现Oracle数据备份(数据导出)
- java 套接字 访问tcp_Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信
- 本地更新github项目_【图文说明】将本地项目上传到github上
- 谷歌放弃go_盘点国内可以使用的十种谷歌服务
- 混淆矩阵评价指标_机器学习模型评价指标 -- 混淆矩阵
- RDKit化学式 分子式搜索
- 3.4 常用的两种 layer 层 3.7 字体与文本
- SEO小白学习与实践(一):seo学习缘起、目标
- ASEMI整流桥S25VB100,S25VB100参数,S25VB100应用
- 十大经典的心理学效应
- 见习后的感想之关于献血
- Latex带序号的项目符号列表
- 二维快速傅里叶逆变换
- 数论题中(杜教筛)交换求和符号
- IP第十天笔记 - - - BGP
- NC/ncat的使用
- 基础概念之电路板的概念
热门文章
- 计算机科学与技术专家报告内容,计算机科学与技术专业设计报告大学内容.docx...
- java 检测ie版本更新_[Java教程]有关IE版本检测_星空网
- linux设备和驱动注册,Linux驱动第五篇-----驱动注册和生成设备节点
- Java黑皮书课后题第4章:4.16(随机字符)编写一个程序,使用Math.random()方法显示一个随机的大写字母
- session与cookie的简单使用
- 数据结构与算法一 - 二叉树基础
- CentOS 编译安装 Nodejs (实测 笔记 Centos 7.3 + node 6.9.5)
- jQuery从入门到忘记
- 用Code::Blocks Code profiler插件剖析程序性能
- 查看oracle数据库的连接数以及用户