Pyqt5 简明教程

PyQt5 - Drawing API

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

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

通过调用 begin() 方法启用该绘制程序,而 end() 方法停用此绘制程序。其间,通过列在下一张表中的适当方法绘制所需模式。

Sr.No.

Methods & Description

1

begin() 开始在目标设备上绘制

2

drawArc() 在起始角和结束角之间绘制弧形

3

drawEllipse() 在矩形内绘制椭圆

4

drawLine() 绘制带有指定端点的线

5

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

6

drwaPolygon() 利用坐标阵列绘制多边形

7

drawRect() 从左上角坐标处绘制给定宽和高的矩形

8

drawText() 在给定坐标处显示文本

9

fillRect() 用 QColor 变量填充矩形

10

setBrush() 设置笔刷样式以进行绘制

11

setPen() 设置用于绘制的笔的颜色、大小和样式

Example

以下代码中使用了 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()

上述代码生成以下输出 -

database handling outputs