博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
33 Qt 之绘图之绘制卡通蚂蚁
阅读量:2195 次
发布时间:2019-05-02

本文共 2369 字,大约阅读时间需要 7 分钟。

绘制

具体的效果如下所示,我们可以再进行更好的完善。

源码

主要分为以下三部:

  • 绘制屁股
  • 绘制肚子
  • 绘制头部

注意:绘制的时候,由于各个部分的颜色不同,而且坐标不好定位,所以我们采用的图形覆盖的方式。

void MainWindow::paintEvent(QPaintEvent *){    QPainter painter(this);    painter.setRenderHint(QPainter :: Antialiasing, true);    /*****屁股*****/    QPainterPath path;    path.addRoundRect(QRect(200, 60, 150, 150), 1000);    painter.setBrush(Qt::white);    painter.setPen(Qt::black);    painter.drawPath(path);    /*****肚子*****/    // 腿    path = QPainterPath();    path.moveTo(170, 180);    path.lineTo(120, 260);    path.moveTo(185, 180);    path.lineTo(145, 280);    path.moveTo(200, 180);    path.lineTo(180, 290);    path.moveTo(200, 180);    path.lineTo(220, 290);    path.moveTo(215, 180);    path.lineTo(250, 280);    path.moveTo(230, 180);    path.lineTo(280, 260);    painter.setBrush(Qt::NoBrush);    painter.setPen(Qt::white);    painter.drawPath(path);    // 肚子    path = QPainterPath();    path.addRoundRect(QRect(150, 130, 100, 100), 1000);    painter.setBrush(Qt::white);    painter.setPen(Qt::black);    painter.drawPath(path);    /*****头*****/    // 犄角    path = QPainterPath();    path.moveTo(80, 100);    path.lineTo(60, 20);    path.moveTo(140, 100);    path.lineTo(160, 20);    painter.setBrush(Qt::NoBrush);    painter.setPen(Qt::white);    painter.drawPath(path);    path = QPainterPath();    path.addRoundRect(QRect(50, 80, 120, 120), 1000);    painter.setBrush(Qt::white);    painter.setPen(Qt::black);    painter.drawPath(path);    // 左眼    path = QPainterPath();    path.addRoundRect(QRect(70, 120, 25, 25), 1000);    painter.setBrush(Qt::black);    painter.setPen(Qt::NoPen);    painter.drawPath(path);    path = QPainterPath();    path.addRoundRect(QRect(75, 126, 10, 10), 1000);    painter.setBrush(Qt::white);    painter.setPen(Qt::NoPen);    painter.drawPath(path);    // 右眼    path = QPainterPath();    path.addRoundRect(QRect(120, 110, 25, 25), 1000);    painter.setBrush(Qt::black);    painter.setPen(Qt::NoPen);    painter.drawPath(path);    path = QPainterPath();    path.addRoundRect(QRect(125, 118, 10, 10), 1000);    painter.setBrush(Qt::white);    painter.setPen(Qt::NoPen);    painter.drawPath(path);    // 嘴    path = QPainterPath();    path.moveTo(160, 108);    path.arcTo(QRect(130, 48, 60, 60), 270, 100);    painter.rotate(30);    painter.setBrush(Qt::NoBrush);    painter.setPen(Qt::black);    painter.drawPath(path);}

 

转载地址:http://tgsub.baihongyu.com/

你可能感兴趣的文章
Java Guava中的函数式编程讲解
查看>>
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
iOS常用宏定义
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
结构型模式之桥接模式(Bridge)
查看>>