Qt-QPainter drawText方法不同重载之间的区别

QPainter类的drawText方法有如下重载:

void 
drawText(const QPointF &position, const QString &text)
void 
drawText(const QPoint &position, const QString &text)
void 
drawText(int x, int y, const QString &text)
void 
drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)
void 
drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)
void 
drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)
void 
drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())

可以分成两类,一类是提供点坐标绘制文本,一类是提供方框绘制文本。区别在于提供点坐标进行绘制的时候,点是在文本的左下角。而提供矩形的时候,矩形的点是在文本的左上角,同时也是矩形的左上角。
代码示例:

void MainWindow::paintEvent(QPaintEvent *event)
{QPainter painter(this);auto font = painter.font();font.setPixelSize(20);painter.setFont(font);painter.translate(100, 100);painter.drawLine(-100, 0, 500, 0);painter.drawLine(0, -500, 0, 100);painter.setPen(Qt::blue);QString text1 = "Hello";painter.drawText(0, 0, text1);QRect rect(0, 0, 100, 100);QString text2 = "World";painter.drawText(rect, text2);painter.setPen(Qt::red);painter.drawRect(rect);return QMainWindow::paintEvent(event);
}

在这里插入图片描述
可以看到两个函数提供的点坐标锚定的是文本的不同位置,使用时要多多注意。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/539943.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win11系统qtcreator构建运行程序首次启动卡顿(win11首次启动应用程序卡顿)

首先可以参考一下这个博客:为什么win11系统开机后第一次打开一个软件很慢,关闭进程重新打开速度就正常了,该怎样解决呢? - 知乎 经过上述博客,但是我没有完全解决,这里说一下自己的方法: 打开任…

香港理工大学主办!2024年第八届电力能源系统与应用国际会议(ICoPESA 2024)即将召开!

2024年第八届电力能源系统与应用国际会议(ICoPESA 2024) 2024年6月24日-26日 中国香港 ICoPESA 2024-Hong Kong (icpesa.org)https://icpesa.org/index.html 会议组织单位 会议出版及检索: 会议录用并注册的论文将由IEEE出版,…

视频监控汇聚管理系统EasyCVR平台RTMP推流异常是什么原因?

AI视频智能分析/视频监控管理平台EasyCVR能在复杂的网络环境中(专网、内网、局域网、广域网、公网等),支持设备通过4G、5G、WIFI、有线等方式接入,并将设备进行统一集中接入与视频汇聚管理,经平台接入的视频流能实现多…

ISIS多区域实验简述

为支持大型路由网络,IS-IS在路由域内采用两级分层结构。 IS-IS网络中三种级别的路由设备:将Level-1路由设备部署在区域内,Level-2路由设备部署在区域间,Level-1-2路由设备部署在Level-1和Level-2路由设备的中间。 实验拓扑图&…

宋仕强论道之华强北背包客(三十九)

华强北汹涌的人流,主要是在华强北经营的商户和来华强北的客户,还包括华强北的背包客,背包客是华强北的特殊群体,来自于全国各地甚至于世界各地,国外的背包客也是华强北国际化的主要渠道。一个是国内的背包客的渠道&…

springboot学习(八十六) springboot使用graalvm编译native程序

一、windows环境下 1.下载graalvm的jdk https://injdk.cn/ 下载windows版本 配置java环境变量,配置过程略 2.下载visual Studio Build Tools 下载地址:https://aka.ms/vs/17/release/vs_BuildTools.exe 安装后选择组件: 其中windows S…

实现Docker容器时间与宿主机时间同步

确保Docker容器的时间与宿主机系统时间同步,可以采用以下几种方法: 挂载宿主机的/etc/localtime文件: 当创建Docker容器时,可以通过 -v 参数来挂载宿主机的系统时间和时区配置到容器内: docker run -d --name containe…

探索 Spring 框架:企业级应用开发的强大工具

CSDN-个人主页:17_Kevin-CSDN博客 收录专栏:《Java》 目录 一、引言 二、Spring 框架的历史 三、Spring 框架的核心模块 四、Spring 框架的优势 五、Spring 框架的应用场景 六、结论 一、引言 在当今数字化时代,企业级应用开发的需求日…

Spring Boot 中@Scheduled是单线程还是多线程?

在开发Spring Boot应用程序时,定时任务是一项常见的需求。Spring Boot提供了Scheduled注解,可用于将方法标记为定时任务,并在预定的时间间隔内执行。那么Scheduled注解的执行方式是单线程执行,还是多线程执行?Schedule…

谷歌通用AI智能体发布,3D游戏玩法要变天了

谷歌DeepMind号称打造出了首个能在广泛3D虚拟环境和视频游戏中遵循自然语言指令的通用AI智能体。 名为SIMA,不是NPC,是可以成为玩家拍档,帮忙干活打杂的那种。 比如,在《模拟山羊3》(Goat Simulator 3)中当…

Unload-labs

function checkFile() {var file document.getElementsByName(upload_file)[0].value;if (file null || file "") {alert("请选择要上传的文件!");return false;}//定义允许上传的文件类型var allow_ext ".jpg|.png|.gif";//提取上传文件的类…

C#,数值计算,数据测试用的对称正定矩阵(Symmetric Positive Definite Matrix)的随机生成算法与源代码

C.Hermite 1、对称矩阵 对称矩阵(Symmetric Matrices)是指以主对角线为对称轴,各元素对应相等的矩阵。在线性代数中,对称矩阵是一个方形矩阵,其转置矩阵和自身相等。1855年,埃米特(C.Hermite,1822-1901年)证明了别的数学家发现的一些矩阵类的特征根的特殊性质,如称为埃…