利用QPainter作图

void MyPainter::paintEvent(QPaintEvent */*event*/)
{
    QPainter painter(this);
    //设定钢笔工具
    QPen pen;
    pen.setStyle(Qt::SolidLine);
    pen.setWidth(1);
    pen.setBrush(Qt::blue);
    pen.setCapStyle(Qt::RoundCap);
    pen.setJoinStyle(Qt::RoundJoin);
    painter.setPen(pen);
    //设定线性渐变工具,可加入到刷子工具中使用
    QLinearGradient gradient(10,10,100,100);
    gradient.setColorAt(0.0,Qt::white);
    gradient.setColorAt(0.2,Qt::red);
    gradient.setColorAt(0.8,Qt::black);
    //设定刷子工具
    QBrush brush(gradient);
    //brush.setColor(Qt::red);
    //brush.setStyle(Qt::SolidPattern);
    painter.setBrush(brush);
    //作路径
    QPainterPath path;
    path.moveTo(20,20);
    path.cubicTo(20,45,56,39,56,45);
    //设定反锯齿作图,可使得曲线平滑
    painter.setRenderHint(QPainter::Antialiasing,true);    
    //画图
    painter.save();//保存状态
    //painter.drawLine(10,10,200,200);
    painter.drawRect(10,10,50,50);
    //painter
    //painter.drawPath(path);
    painter.restore();//恢复状态
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5是Python语言的GUI编程工具包,其中包含了QPainter类,可以用来绘制各种形。下面是一些常见的形及其绘制方法: 1. 直线 ```python from PyQt5.QtGui import QPainter, QPen from PyQt5.QtCore import Qt pen = QPen(Qt.black, 2, Qt.SolidLine) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.drawLine(0, 0, 100, 100) painter.end() ``` 2. 矩形 ```python from PyQt5.QtGui import QPainter, QPen, QBrush from PyQt5.QtCore import Qt pen = QPen(Qt.black, 2, Qt.SolidLine) brush = QBrush(Qt.gray) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.setBrush(brush) painter.drawRect(0, 0, 100, 100) painter.end() ``` 3. 圆形 ```python from PyQt5.QtGui import QPainter, QPen, QBrush from PyQt5.QtCore import Qt pen = QPen(Qt.black, 2, Qt.SolidLine) brush = QBrush(Qt.gray) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.setBrush(brush) painter.drawEllipse(0, 0, 100, 100) painter.end() ``` 4. 文字 ```python from PyQt5.QtGui import QPainter, QFont from PyQt5.QtCore import Qt font = QFont("Arial", 16) painter = QPainter() painter.begin(self) painter.setFont(font) painter.drawText(0, 0, "Hello PyQt5") painter.end() ``` 5. 多边形 ```python from PyQt5.QtGui import QPainter, QPen, QBrush from PyQt5.QtCore import Qt, QPoint pen = QPen(Qt.black, 2, Qt.SolidLine) brush = QBrush(Qt.gray) painter = QPainter() painter.begin(self) painter.setPen(pen) painter.setBrush(brush) points = [QPoint(0, 0), QPoint(50, 50), QPoint(100, 0)] painter.drawPolygon(points) painter.end() ``` 以上只是一些常见的形,QPainter还支持更多的绘制方法,比如曲线、扇形等等,具体可以参考官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值