setupUi(this);}void BasicShapeWindow::paintEvent(QPaintEvent " />

qt 使用QPainter绘图

QPainter 绘制一些简单的图形,也可以设置文字,设置笔,路径等。需要实现paintEvent这个方法,然后使用QPainter需要传入this指针,表示父类会调用。



#include "basicshapewindow.h"
#include "ui_basicshapewindow.h"

BasicShapeWindow::BasicShapeWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::BasicShapeWindow)
{
ui->setupUi(this);
}

void BasicShapeWindow::paintEvent(QPaintEvent *event)
{
QPainter textPainter(this);
textPainter.setFont(QFont("Times", 14, QFont::Bold));
textPainter.drawText(QPoint(40, 60), "Testing");

QPainter linePainter(this);
linePainter.drawLine(QPoint(50, 60), QPoint(100, 100));

QPainter rectPainter(this);
rectPainter.setBrush(Qt::BDiagPattern);
rectPainter.drawRect(QRect(40, 120, 80, 130));

QPen ellipsePen;
ellipsePen.setColor(Qt::red);
ellipsePen.setStyle(Qt::DashDotLine);

QPainter ellipsePainter(this);
ellipsePainter.setPen(ellipsePen);
ellipsePainter.drawEllipse(QPoint(200, 100), 150, 70);

QPainterPath rectPath;
rectPath.addRect(QRect(150, 60, 100, 50));
QPainter pathPainter(this);
pathPainter.setPen(QPen(Qt::red, 3, Qt::DashDotLine, Qt::FlatCap, Qt::MiterJoin));
pathPainter.setBrush(Qt::yellow);
pathPainter.drawPath(rectPath);

QPainterPath ellipsePath;
ellipsePath.addEllipse(QPoint(200, 120), 50, 120);
QPainter ellipsePathPainter(this);
ellipsePathPainter.setPen(QPen(QColor(79, 106, 25), 5,
Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin));
ellipsePathPainter.setBrush(QColor(122, 163, 39));
ellipsePathPainter.drawPath(ellipsePath);

QImage image;
image.load(":/head.png");
QPainter imagePainter(this);
imagePainter.drawImage(QPoint(100, 150), image);
}

BasicShapeWindow::~BasicShapeWindow()
{
delete ui;
}





相关文档

  • 鞋套:为鞋子穿上鞋子
  • 校锣鼓队的训练计划
  • 脸上皮肤干怎么补水
  • 幼儿园后勤第二学期工作计划
  • 大学生暑期钳工社会实践报告共2篇
  • 安卓开发菜单!Android高级工程师面试题-字节跳动,吐血整理
  • 瘦臀部最有效方法
  • 作文愚人节习俗
  • 歇后语简单
  • 吃血真的可以补血吗?吃什么补什么吗?
  • 停课不停学工作方案范文十篇
  • 2015年12月英语六级作文模板:说明原因型
  • Spring Boot 源码分析??RequestContextHolder 与 ThreadLocal
  • 孕妇吃葡萄的好处 孕妇吃葡萄有好处吗
  • 圣女贞德月季的优缺点
  • 大型玉露的养殖方法有哪些
  • 烟雨南宋慷慨多
  • 2020年江苏南京市雨花台区卫生健康委员会所属部分事业单位招聘高层次人才公告
  • 独领风骚华人数学家之----周海中
  • [整理]如何关闭windows server 2003/XP默认的共享
  • 通过composer为tp5项目安装PHPexcel
  • 值得珍藏的财富中考作文汇总3篇
  • 橘子是单性花吗
  • 第三方非代收货款货物运输合同
  • android-修改TextView中部分文字的颜色
  • 广州恒大足球队队徽的设计理念
  • 高中数学教师工作心得体会
  • Fidder详解之抓包
  • 表格怎么筛选重复并删除
  • 爸爸的爱作文300字
  • 电脑版