QPainter【详细描述】

Qt的QPainter详细介绍 QPainter是Qt框架中的一个类,主要用于在各种设备上进行2D图形绘制,如窗口、位图、打印设备等。它提供了一系列绘图函数,可以实现绘制点、线、曲线、形状、文本、图像以及复杂的绘画操作。使用QPainter创建一个QPainter对象。将QPainter与要绘图的设备(如QPixmapQImage或QWidget)关联起来,通过调用begin()函数。使用QPainter提供的绘图函数进行绘图,如drawLine()drawRect()drawText()等。绘制完毕后,调用end() 阅读详情

 

QPainter提供了高度优化的功能来完成大多数绘图GUI程序所需要的工作。它可以画出一切,从简单的线条到复杂的形状。还可以绘制文本和像素图。QPainter可以对继承了QPaintDevice 的类的任何对象进行操作。


QPainter的常见用法是在控件的“绘图事件”paintEvent()中构造QPainter对象,和定制笔刷或画笔,然后开始绘画,绘画完成后记得要销毁QPainter对象。

在paintEvent()外部构造QPainter对象,程序运行时报错:

QWidget::paintEngine: Should no longer be called

有时导致闪退。


QPainter的核心功能是绘图,允许用户自定义QPainter的设置及其渲染质量,还可以通过指定QPainter对象的合成模式来控制不同的形状如何层叠在一起。

isActive() 函数指示画家是否处于活动状态。
begin() 函数和接受QPaintDevice 的构造函数激活画家。
end() 函数和析构函数停用它。

QPainter与 QPaintDevice和 QPaintEngine 一起,构成了Qt绘图系统的基础。

QPainter是用于执行图形操作的类。

QPaintDevice表示可以使用QPainter进行绘制的设备。

QPaintEngine提供了QPainter用来绘制不同类型设备的接口。

如果painter处于活动状态,device() 返回正在用于绘画的设备, paintEngine() 返回当前正在运行的 painter 引擎。(参见Paint System)
 


有时用户希望在特殊的QPaintDevice上作画,QPainter通过静态函数setRedirected() 来实现重定向。

警告:当绘画设备是一个控件时,只能在paintEvent() 函数内部或paintEvent() 调用的函数中使用QPainter。【跟前面说的一样,可以说是反复强调了】


 设置 

QPainter 有以下偏好设置:

font()

  • 用于绘制文本的字体。如果画家 isActive(),则可以分别使用fontInfo() 和 fontMetrics()函数检索有关当前设置的字体及其度量的信息。


brush() 

  • 定义了用于填充形状的颜色或图案。

pen() 

  • 定义了用于绘制线或边界的颜色或点画。


backgroundMode() 

Qt—QPainter基本图形绘制详解 1、QPainter 类在小部件和其他绘制设备上执行低级绘制。2、QPainter 提供了高度优化的功能来完成大多数图形GUI程序所需的工作。它可以画从简单的线条到复杂的形状。它还可以绘制对齐的文本和像素图。QPainter 可以对继承 QPaintDevice 类的任何对象进行操作。3、QPainter 与 QPaintDevice 和 QPaintEngine 类一起构成了Qt绘制系统的基础:QPainter 是用于执行绘图操作的类。QPaintDevice 表示可以使用 QPainter 在其上绘制的 阅读详情

相关推荐

ANSYS APDL 后处理:用*GET和ETABLE命令把节点/单元应力结果导出到TXT文件(附完整命令流)

本文详细介绍了在ANSYS APDL中使用*GET和ETABLE命令导出节点和单元应力数据到TXT文件的完整方案。通过节点解和单元解的核心逻辑分析,提供了从基础到进阶的数据导出方法,包括节点应力、单元应力数据的提取与格式化输出,以及高级技巧如选择性导出与数据过滤。帮助工程师高效完成有限元分析后处理工作。

weixin_26805597的博客 631

STM32F103ZE驱动PMW3901光流模块,从SPI配置到数据读取的完整避坑指南

本文详细解析了STM32F103ZE驱动PMW3901光流模块的全过程,从SPI配置、硬件连接到数据读取与处理,提供了完整的避坑指南。重点介绍了SPI参数配置、初始化序列优化、运动数据滤波等关键技巧,帮助开发者快速实现精准的光流检测。

weixin_42631411的博客 514

非sudo用户如何安全使用Docker:Rootless模式实战指南

Docker Rootless模式是一种基于Linux用户命名空间(userns)的容器运行时安全机制,它通过UID/GID映射、fuse-overlayfs文件系统和slirp4netns网络栈,在不提升权限的前提下实现容器隔离。其核心原理是将容器内root身份映射为宿主机非特权用户,从而规避docker组等价root的安全风险。相比传统root模式,Rootless在权限控制、逃逸防护和多租户隔离方面具备天然优势,适用于CI/CD流水线、Kubernetes边缘节点及受限生产环境。本文聚焦无sudo权限

weixin_30274627的博客 349

避开地图定位偏差!手把手教你用Python实现火星坐标与WGS84精准转换

本文深入解析了国内地图服务中火星坐标(GCJ-02)与国际标准WGS84坐标系之间的偏差问题,并提供了基于Python的精准转换解决方案。文章详细阐述了坐标转换的核心原理,手把手教你构建可复用的转换工具包,并演示如何将其集成到实际应用(如Flask API)中,帮助开发者和数据分析师有效解决地图定位不准、多源数据无法对齐的痛点,提升地理信息处理能力。

weixin_29250403的博客 125

遥感影像分割实战:LoveDA数据集从下载到训练全流程指南(附避坑技巧)

本文以LoveDA数据集为例,提供了一份详尽的遥感影像语义分割实战指南。内容涵盖从数据下载、理解与预处理,到环境配置、模型选择与训练,再到性能调优与部署的全流程,并重点分享了多个关键环节的避坑技巧,旨在帮助开发者和研究者高效上手并解决实际问题。

cherry的博客 930

算法 | 植物根茎生长优化算法(PRGO)原理、公式及应用,matlab代码(2025最强优化算法)

【代码】算法 | 植物根茎生长优化算法(PRGO)原理、公式及应用,matlab代码(2025最强优化算法)

尘世冰封的专栏 1017

Midscene.js(2):代码集成 + 桥接模式(Bridge Mode)的使用「喂饭教程」

本文将手把手教你从零开始搭建一个 Node.js 项目,集成 Midscene.js,并利用其桥接模式实现对 Chrome 浏览器的自动化操作。我们将通过具体的实例,来展示 Midscene.js 的便捷性与 AI 能力的结合。

blues_C的博客 1844

C#:实现统计图像主颜色的算法(附完整源码)

C#:实现统计图像主颜色的算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 520

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: QPainter类
下一篇: QGraphicsScene类
floatbit
博客等级 码龄24年 460粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值