PyQt5 – 绘图API

PyQt5 – 绘图API

PyQt中所有的QWidget类都来自于QPaintDevice类的子类。QPaintDevice是一个二维空间的抽象,可以使用QPainter来绘制。绘画设备的尺寸以像素为单位,从左上角开始测量。

QPainter类在widget和其他可绘画的设备上执行低级别的绘画,比如打印机。通常情况下,它被用在widget的paint事件中。每当widget的外观被更新时,QPaintEvent就会发生。

通过调用begin()方法激活绘制器,而end()方法则停用它。在这之间,所需的图案是由下表所列的合适的方法绘制的。

Sr.No. 方法和描述
1 begin() 在目标设备上开始绘画
2 drawArc() 在起点和终点的角度之间画一个弧线。
3 drawEllipse() 在一个矩形内画一个椭圆。
4 drawLine() 绘制一条具有指定端点坐标的直线。
5 drawPixmap() 从图像文件中提取pixmap,并在指定位置显示。
6 drwaPolygon() 使用坐标阵列绘制一个多边形
7 drawRect() 以给定的宽度和高度从左上角坐标开始绘制一个矩形。
8 drawText() 在给定的坐标上显示文本
9 fillRect() 用QColor参数填充矩形。
10 setBrush() 设置一个绘画用的笔刷样式
11 setPen() 设置绘图时使用的笔的颜色、大小和样式。

示例

在下面的代码中,使用了PyQt的各种绘图方法。

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class Example(QWidget):
   def __init__(self):
      super(Example, self).__init__()
      self.initUI()

   def initUI(self):
      self.text = "hello world"
      self.setGeometry(100,100, 400,300)
      self.setWindowTitle('Draw Demo')
      self.show()

   def paintEvent(self, event):
      qp = QPainter()
      qp.begin(self)
      qp.setPen(QColor(Qt.red))
      qp.setFont(QFont('Arial', 20))
      qp.drawText(10,50, "hello Python")
      qp.setPen(QColor(Qt.blue))
      qp.drawLine(10,100,100,100)
      qp.drawRect(10,150,150,100)
      qp.setPen(QColor(Qt.yellow))
      qp.drawEllipse(100,50,100,50)
      qp.drawPixmap(220,10,QPixmap("pythonlogo.png"))
      qp.fillRect(20,175,130,70,QBrush(Qt.SolidPattern))
      qp.end()

def main():
   app = QApplication(sys.argv)
   ex = Example()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

上述代码产生了以下输出 –

PyQt5 - 绘图API

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程