PyQt5 - 绘图 API


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

QPainter类在小部件和其他可绘制设备(例如打印机)上执行低级绘制。通常,它用在小部件的绘制事件中。每当窗口部件的外观更新时,QPaintEvent就会发生。

画家通过调用begin()方法来激活,而end()方法则将其停用。其间,通过下表中列出的适当方法绘制所需的图案。

先生。 方法与说明
1

开始()

开始在目标设备上绘画

2

绘制弧线()

在起始角度和结束角度之间绘制圆弧

3

画椭圆()

在矩形内绘制椭圆

4

画线()

绘制一条指定端点坐标的线

5

绘制像素图()

从图像文件中提取pixmap并将其显示在指定位置

6

drwaPolygon()

使用坐标数组绘制多边形

7

绘制矩形()

从左上角坐标开始绘制一个具有给定宽度和高度的矩形

8

绘制文本()

在给定坐标处显示文本

9

填充矩形()

使用 QColor 参数填充矩形

10

设置画笔()

设置绘画的画笔样式

11

设置笔()

设置用于绘图的笔的颜色、大小和样式

例子

在下面的代码中,使用了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()

上面的代码产生以下输出 -

数据库处理输出