QPainter的使用详解

这是篇翻译的文章,翻译的过程中自己也亲自敲下代码,更深入地了解QPainter的功能。
我们不论是用Qt画图或者是显示文字都得用到QPainter。

在这里插入图片描述

QPainter

首先用QPainter来画一条直线

import sys
from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PyQt5.QtCore import Qt


class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()

        self.label = QtWidgets.QLabel()
        canvas = QtGui.QPixmap(400, 300)
        self.label.setPixmap(canvas)
        self.setCentralWidget(self.label)
        self.draw_something()

    def draw_something(self):
        painter = QtGui.QPainter(self.label.pixmap())
        painter.drawLine(10, 10, 300, 200)
        painter.end()


app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()

真正执行画的操作是在do_something这个方法里,创建个QPainter的实例,然后传入画布也就是QPixmap,然后执行一个画的命令,最后用.end()来结束画的操作。
在这里插入图片描述

QPainter Primitives

QPainter提供了很多画的方法,幸运的是这些方法都是覆载过得,所以调用的时候仅有很小的差别。
例如有五种drawLine的方法,

MethodDescription
drawLine(const QLineF &line)Draw a QLineF instance
drawLine(const QLine &line)Draw a QLine instance
drawLine(int x1, int y1, int x2, int y2)Draw a line between x1, y2 and x2, y2
drawLine(const QPoint &p1, const QPoint &p2)Draw a line between QPoint 1 and QPoint 2
drawLine(const QPointF &p1, const QPointF &p2)Draw a line between QPointF 1 and QPointF 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值