• 绘画系统(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类派生而创建的自定义绘画引擎。
  • 相关阅读:
    python的语法错误与异常
    一键免密登录云平台!ZStack Cloud 4.5.0等你来解锁……
    jenkins的安装配置并集成jdk、git
    GeoServer发布地图服务(WMS、WFS)
    《流畅的python》阅读笔记 - 第六章:使用一等函数实现设计模式
    mysql面试题四(事务)
    vscode 根据 ESLint 规范自动格式化代码
    js 回到顶部逻辑实现和elementUI源码解析
    STM32H750之FreeRTOS学习--------(六)FreeRTOS的列表和列表项
    idea 无法识别maven的解决
  • 原文地址:https://blog.csdn.net/hitzsf/article/details/127070376