- PyQt5 教程
- PyQt5 - 首页
- PyQt5 - 简介
- PyQt5 - 新特性
- PyQt5 - Hello World
- PyQt5 - 主要类
- PyQt5 - 使用 Qt Designer
- PyQt5 - 信号与槽
- PyQt5 - 布局管理
- PyQt5 - 基本控件
- PyQt5 - QDialog 类
- PyQt5 - QMessageBox
- PyQt5 - 多文档界面
- PyQt5 - 拖放
- PyQt5 - 数据库处理
- PyQt5 绘图 API
- PyQt5 - BrushStyle 常量
- PyQt5 - QClipboard
- PyQt5 - QPixmap 类
- PyQt5 有用资源
- PyQt5 - 快速指南
- PyQt5 - 有用资源
- PyQt5 - 讨论
PyQt5 绘图 API
PyQt 中所有QWidget类都是从QPaintDevice类派生的。QPaintDevice是对二维空间的抽象,可以使用QPainter在其上绘制。绘图设备的尺寸以像素为单位,从左上角开始测量。
QPainter类在控件和其他可绘制设备(如打印机)上执行低级绘制。通常,它用于控件的绘制事件。每当控件的外观更新时,就会发生QPaintEvent。
通过调用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()
以上代码产生以下输出:
广告