码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 绘画系统(02):【纲】Paint Devices and Backends[官翻]


    绘画设备和后端

    Paint Devices and Backends

    创建绘画设备

    ​ QPaintDevice类是可以绘制的对象的基类,即QPainter可以在任何QPaintDevice子类上绘制。 QPaintDevice的绘制功能由QWidget,QImage,QPixmap,QPicture,QPrinter和QOpenGLPaintDevice实现。

    • 小部件(Widget)
      ​QWidget类是Qt Widgets模块中用户界面元素的基类。 它从窗口系统接收鼠标,键盘和其他事件,并在屏幕上绘制其自身的表示。
    • 图片(Image)
      ​ QImage类提供了独立于硬件的图像表示,该图像表示针对I / O以及直接像素访问和操纵进行了设计和优化。 QImage支持多种图像格式,包括单色,8位,32位和alpha混合图像。
      ​ 使用QImage作为绘制设备的一个优点是可以以与平台无关的方式保证任何绘制操作的像素准确性。 另一个好处是绘画可以在当前GUI线程之外的另一个线程中执行。
    • 像素图(Pixmap)
      QPixmap类是一种屏幕外图像表示形式,其设计和优化用于在屏幕上显示图像。 与QImage不同,像素图中的像素数据是内部的,并由基础窗口系统管理,即像素只能通过QPainter函数或将QPixmap转换为QImage来访问。
      为了使用QPixmap优化绘图,Qt提供了QPixmapCache类,该类可用于存储临时像素图,这些像素图的生成成本很高,并且不使用超出缓存限制的存储空间。
      Qt还提供了QBitmap便利类,继承了QPixmap。 QBitmap保证单色(1位深度)像素图,主要用于创建自定义QCursor和QBrush对象,构造QRegion对象。
    • OpenGL画图设备
      如前所述,Qt提供的类使在Qt应用程序中使用OpenGL变得容易。 例如,QOpenGLPaintDevice启用OpenGL API以使用QPainter进行渲染。
    • 图片(Picture)
      QPicture类是一种绘画设备,可以记录和重放QPainter命令。 图片以平台无关的格式将Painter命令序列化到IO设备。 QPicture也是与分辨率无关的,即QPicture可以在看起来相同的不同设备(例如svg,pdf,ps,打印机和屏幕)上显示。
      Qt提供了QPicture :: load() 和QPicture :: save() 函数,以及用于加载和保存图片的流运算符。
    • 自定义后端
      对新后端的支持可以通过从QPaintDevice类派生并重新实现虚拟QPaintDevice :: paintEngine() 函数来实现,以告知QPainter应该使用哪个绘画引擎在此特定设备上进行绘制。 为了真正能够在设备上绘画,此绘画引擎必须是通过从QPaintEngine类派生而创建的自定义绘画引擎。
  • 相关阅读:
    跨境商城源码有哪些独特的功能和优势
    PostgreSQL修炼之道笔记之基础篇(五)
    如何在Word中插入代码片段
    加壳的app分析dex(可以正常抓包的话)
    减少Cache失效开销例题1(多级Cache)
    【python基础】函数-参数形式
    1.19.5.4.流上的Join、常规Join、时间区间Join、时态表Join、基于处理时间的时态Join、时态表函数Join、用法
    Easy Future亮点集锦|品牌升级,加速产业数字化
    大顶堆,小顶堆结构添加,移除元素过程以及源码分析(Java)结合LeetCode347(前k个高频元素), 215(第k大的数), 295(数据流的中位数)
    网络编程-UDP协议(发送数据和接收数据)
  • 原文地址:https://blog.csdn.net/hitzsf/article/details/127070376
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号