PyQt5 绘画API

PyQt5 绘画API

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

QPainter 类在widget和其他可画的设备(如打印机)上执行低层次的绘画。通常情况下,它被用在widget的绘制事件中。 QPaintEvent 在widget的外观被更新时发生。

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

序号 方法和描述
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教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程