PyQt5 绘画API

PyQt5 绘画API

所有的 QWidget 类都是从 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()

上面的代码会产生以下输出−

PyQt5 绘画API

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程