PyQt5.QtGui.QPicture()||PyQt5.QtGui.QPainter()结构及用法

  • QPicture Class 官方文档

QPicture类是Qt文件的类,直接归属关系应该是Qt5–>QtGui–>QPicture。PyQt5.QtGui.QPicture()标题的写法应该是不对的,但是在实际使用的时候就是PyQt5.QtGui.QPicture()这种关系。

PyQt5与Qt5文件、类的归属关系上我还是有点迷糊,也没看到好的资料。

我直观的理解是,QPicture这种A类是Qt本身就拥有的类,PyQt5直接内置到自己的模块中,直接使用,并不算是PyQt5另外写的,为了实现Qt与Python的结合,PyQt5这个模块会在Qt已有类基础上再写一些B类,这种B类在查阅文档的时候会发现在PyQt5docunments里面。A类就在Qt Document里面。

QPicture()类是一种记录和再现QPainter命令的绘图设备

继承自QPaintDevice,被Q3Picture继承。

绘图设备是指继承QPainterDevice的子类,一共有四种:QPixmap、QBitmap、QImage和 QPicture。

  • PyQt5.QtGui.QPainter() 官方文档

被QDirectPainter继承。

对于Qt3,Qt4中的QPainter做了不小的改动,具体见链接。

Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。

  1. QPainter 用于执行绘图操作,其提供的 API 在 GUI 或 QImage、QOpenGLPaintDevice、QWidget
  2. QPaintDevice 显示图形(线、形状、渐变等)、文本和图像。
    QPaintDevice 不直接绘制物理显示画面,而利用逻辑界面的中间媒介。例如,绘制矩形图形时,为了将对象绘制到 QWidget、QGLPixelBuffer、QImage、QPixmap、QPicture 等多种界面中间,必须使用 QPaintDevice。
  3. QPaintEngine 提供了一些接口,可用于 QPainter 在不同的设备上进行绘制

QPainter 一般就是在前面所说的继承自QPaintDevice 的子类(QWidget、QImage、QPicture、QPrinter…)上操作。QPainter 一般在部件的绘图事件 paintEvent() 中进行绘制。

绘图工具的典型用法是:

  • 构造一个绘图工具。
  • 设置画笔、画刷等等。
  • 绘制。
  • 销毁这个绘图工具。
  • Reference
  1. QPicture Class Reference
  2. Qt 之图形(QPainter 的基本绘图)
  3. QPainter类参考
  4. 阿洲的程式教學

你可能感兴趣的:(#,小白学Python,#,PyQt5知道这些就够了)