PyQt5 - 绘图 API

  • 简述

    QWidgetPyQt 中的类是 QPaintDevice 类的子类。一种QPaintDevice是可以使用 QPainter 绘制的二维空间的抽象。绘画设备的尺寸从左上角开始以像素为单位进行测量。
    QPainter类在小部件和其他可绘制设备(如打印机)上执行低级绘制。通常,它用于小部件的绘制事件。这QPaintEvent每当更新小部件的外观时发生。
    画家通过调用begin()方法,而end()方法将其停用。在这两者之间,通过下表中列出的合适方法绘制所需的图案。
    序号 方法和描述
    1
    begin()
    开始在目标设备上绘画
    2
    drawArc()
    在起始角和结束角之间绘制圆弧
    3
    drawEllipse()
    在矩形内绘制一个椭圆
    4
    drawLine()
    用指定的端点坐标绘制一条线
    5
    drawPixmap()
    从图像文件中提取像素图并显示在指定位置
    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()
    
    上面的代码产生以下输出 -
    数据库处理输出