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.mzph.cn/news/746952.shtml

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

相关文章

APP在应用商店该如何做好节日营销

38妇女节刚刚过去,不少商家吃上了一波节日红利。 你有没有注意到很多App在应用商店里改头换面,开展了很多以“三八节”为主题的营销活动,并且取得了不错的成绩。 可见季节性营销策划对产品的下载量和用户留存率还是很重要的。 那么我们如何…

【芯片SoC设计概念】

SoC概念简介 0 Introduction0.1 Concept 1 SoC关注点1.1 SoC总线1.2 SoC存储器1.3 处理器1.4 软硬件接口 0 Introduction 0.1 Concept 在芯片设计概念当中,有几个名词概念,先理解清楚; FPGA VS ASIC: FPGA芯片就是可编程芯片,可…

16.【CPP】详解继承

继承方式 如图 注意点 1.基类private成员在派生类中无论以什么方式继承都是不可见的。这里的不可见是指基类的私有成员还是被继承到了派生类对象中,但是语法上限制派生类对象不管在类里面还是类外面都不能去访问它 2.基类private成员在派生类中是不能被访问&#x…

电力物联网采集终端

电力物联网采集终端,通过采集设备数据,并将其传输到云端,实现精细管理和优化。 一、工作原理 电力物联网采集终端主要数据采集模块、通信模块等组成。采集设备的各项数据,如温度、湿度、电流等;数据采集模块将采集到的数据进行处理并存储;通…

Android垃圾回收机制

1.垃圾回收机制 垃圾回收,也叫GC(Garbage Collection),指的是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。 JVM的内存区域主要分为程序计数器、虚…

索尼ILME-FX3摄像机RSV文件无法播放的修复方法

索尼摄像机rsv文件修复案例处理了很多,rsv是索尼mp4或者mxf文件封装失败时生成的临时文件,一般是由于断电或者摄像机意外重启导致的,下边来看下遇到rsv文件无法播放时的修复方法。 故障文件: 29.56G/rsv文件 故障现象: 摄像机型号为索尼IL…

wsl-oraclelinux 固定ip

wsl-oraclelinux 固定ip 0. 引言1. Windows 创建启动脚本2. 配置 wsl Oracle Linux 0. 引言 工作需要,安装了一个 wsl Oracle Linux 8.9,也想给它一个固定的 ip。 1. Windows 创建启动脚本 删除 PSScheduledJob, notepad $PSHOME\powersh…

【大模型API调用初尝试一】智谱AI 通义千问

大模型API调用初尝试一 调用大模型API能干什么智谱AI大模型API调用的过程获取API_KEYGLM_4同步调用GLM_4异步调用文生图大模型API调用 阿里云通义千问API调用过程单轮会话多轮会话 调用大模型API能干什么 大模型的参数非常庞大,功能非常强大,但是训练成…

node:internal/crypto/hash:69 this[kHandle] = new _Hash(algorithm, xofLen);

npm 打包报错 原因就是npm版本太高了,用的18版本,切换成16版本就好了。

Skip Index 学习

列存中的 skip index 是什么概念 列存数据库(Columnar database)中的 skip index 是一种优化查询性能的索引方法。在列存数据库中,数据是按列而不是按行存储的,这使得针对特定列的查询可以非常迅速。然而,即使是在列存…

UI 学习 二 可访问性 模式

教程:Accessibility – Material Design 3 一 颜色对比 颜色和对比度可以用来帮助用户看到和理解应用程序的内容,与正确的元素交互,并理解操作。 颜色可以帮助传达情绪、语气和关键信息。可以选择主色、辅助色和强调色来支持可用性。元素之…

H5 流光分割个人主页源码

源码名称:流光分割个人主页源码 源码介绍:一款流光分割特效个人主页源码,源码带大量跳转个人联系方式按钮和朋友按钮。同时带有个人介绍。 需求环境:H5 下载地址: https://www.changyouzuhao.cn/10241.html

http模块 之 如何创建一个http服务?

一、如何创建一个http服务: (1)导入http模块 const httprequire(http);(2)创建一个 HTTP 服务器对象 const serverhttp.createServer((request,response)>{ // createServer接收一个实参,该实参是一个函数。函数可以是箭头函数匿名函数function等等…

电机参数辨识算法(2)——基于高频注入的磁链辨识策略

电机参数辨识算法(1)——基于高频注入的电感辨识策略-CSDN博客https://blog.csdn.net/m0_46903653/article/details/136722750?spm1001.2014.3001.5501上一期已经讲过了电感辨识方法。 今天这是参数辨识的第二期,今天来简单看看磁链的辨识。…

【数学建模】熵权法

之前我们学了层次分析法和topsis法,但是主观性十分强,有没有科学的方法得出权重呢?今天,我们来学习熵权法! 基本概念: 熵权法,物理学名词,按照信息论基本原理的解释,信息…

SpringBoot+vue3打造企业级一体化SaaS系统

SpringBootvue3打造企业级一体化SaaS系统 简介:    全面提升前后端技术水平,独立完成全栈项目开发能力,快速进击全栈工程师,最终在面试中脱颖而出。整合后端主流技术(Spring Boot、物理数据库隔离、加载动态权限、多…

深度学习-2.6在MINST-FASHION上实现神经网络的学习流程

文章目录 在MINST-FASHION上实现神经网络的学习流程1. 导库2. 导入数据,分割小批量3. 定义神经网络4.定义训练函数5.进行训练与评估 在MINST-FASHION上实现神经网络的学习流程 现在我们要整合本节课中所有的代码实现一个完整的训练流程。 首先要梳理一下整个流程&a…

用try...catch进行判断

在写一些提交数据的判断上,有时候会写下面的ifelse的判断方法,少一点还好,多的话就很难受也不好看。 if(!that.driverObj.contrary){this.__utils.showToast(请先上传驾驶证副页图片);return false } if(!this.driverObj.start){this.__util…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:Flex)

以弹性方式布局子组件的容器组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。Flex组件在渲染时存在二次布局过程,因此在对性能有严格要求的场景下建议使用Column、Row代替。Flex组…

Vue3基础笔记(1)模版语法 属性绑定 渲染

Vue全称Vue.js是一种渐进式的JavaScript框架,采用自底向上增量开发的设计,核心库只关注视图层。性能丰富,完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用,适用于场景丰富的web前端框架。灵活性和可逐步集成…