PyQt5 绘图 API


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

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

画家通过调用 begin() 方法,而 end() 方法将其停用。在这两者之间,通过下表中列出的合适方法绘制所需的图案。

序号. 方法和描述
1

begin()

开始在目标设备上绘画

2

画弧()

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

3

绘制椭圆()

在矩形内绘制一个椭圆

4

画线()

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

5

绘制像素图()

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

6

drwaPolygon()

使用坐标数组绘制多边形

7

绘制矩形()

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

8

绘制文本()

在给定坐标处显示文本

9

填充矩形()

用 QColor 参数填充矩形

10

设置刷子()

设置绘画的画笔样式

11

setPen()

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

例子


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

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

class 例子(QWidget):
    def __init__(self):
        super(例子, 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 = 例子()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

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

Database Handling 输出s