1. 新建一个项目Painter

MyWidget.h

#ifndef
MYWIDGET_H

#define
MYWIDGET_H

#include
<QWidget>

class
MyWidget
:
public
QWidget

{

Q_OBJECT

public:

explicit
MyWidget(QWidget
*parent
);

void
paintEvent(QPaintEvent
*);

signals:

public
slots:

};

#endif
//
MYWIDGET_H

MyWidget.cpp

#include
"MyWidget.h"

#include
<QPainter>

#include
<QPixmap>

#include
<QApplication>

MyWidget::MyWidget(QWidget
*parent)
:

QWidget(parent)

{

}

void
MyWidget::paintEvent(QPaintEvent
*)

{

QPixmap
pixmap(size());

QPainter
p(&pixmap);

//p.translate(100,
100);

//p.scale();

//消除锯齿

p.setRenderHint(QPainter::Antialiasing);

//转换

QTransform
transform;

transform.translate(50,50);

//度

transform.rotate(30);

//
transform.scale(.5,
.5);

p.setTransform(transform);

#if
1

//下面的transform可以覆盖上面的一个transform的效果

QTransform
transform2;

//对整个效果进行缩放

transform2.scale(.5,
.5);

//最后一个参数实现和上面一个transform实现组合

p.setTransform(transform2,
true);

#endif

//通过两个点实现画线

p.drawLine(QPoint(0,
0),
QPoint(100,
100));

//p.translate(-100,
-100);

//钢笔

p.setPen(QPen(Qt::red,
2,
Qt::DashLine));

//使用刷子

p.setBrush(Qt::yellow);

//设置刷子

p.setFont(QFont("aaa",
40,
700,
true));

p.drawEllipse(QPoint(95,
333),
50,
50);

//里面写上文字

p.drawText(QPoint(300,
50),
"Hello
world");

//p.drawPixmap(QPoint(40,
40),
QPixmap("../aaa.png"));

//p.drawRect(QRect(40,
60,
100,
50));

//下面的方式实现画一个圆角矩形

p.drawRoundRect(QRect(40,
60,
100,
50));

p.end();

p.begin(this);

//通过下面的方式实现画图,之所以运行的结果是黑丝的图,是因为加的是pixmap

p.drawPixmap(0,
0,
pixmap);

}

int
main(int
argc,
char**
argv)

{

QApplication
app(argc,
argv);

MyWidget
w;

w.show();

return
app.exec();

}

运行结果:

4.QPixmap,QTransform,绘图函数的使用的更多相关文章

  1. Matlab绘图函数一览

    要查看Matlab所有绘图函数,请从Matlab主界面菜单查看“绘图目录”,或从Matlab帮助文档查看“Types of MATLAB Plots”(在线版本).本文的图和英文解释摘自Matlab帮 ...

  2. 【《zw版·Halcon与delphi系列原创教程》Halcon图层与常用绘图函数

    [<zw版·Halcon与delphi系列原创教程>Halcon图层与常用绘图函数 Halcon的绘图函数,与传统编程vb.c.delphi语言完全不同,     传统编程语言,甚至cad ...

  3. R语言——基本绘图函数

    通过一个综合的例子测试绘图函数 学习的内容是tigerfish老师的教程. 第一节:基本知识 用seq函数产生100位学生的学号. > num = seq(,) > num [] [] [ ...

  4. 《MATLAB从入门到放弃》二维曲线和图形绘制基础(二):使用Help文档学习line、plot、plotyy、subplot、hold绘图函数

    目录: »  plot 最常用的二维曲线绘图函数 >  帮助文档 >  基本使用语法 >  线条的样式.符号和颜色调整 >  图形属性调整 >  使用图形句柄进行设置 » ...

  5. OpenCV中的绘图函数-OpenCV步步精深

    OpenCV 中的绘图函数 画线 首先要为画的线创造出环境,就要生成一个空的黑底图像 img=np.zeros((512,512,3), np.uint8) 这是黑色的底,我们的画布,我把窗口名叫做i ...

  6. 数据分析与展示——Matplotlib基础绘图函数示例

    Matplotlib库入门 Matplotlib基础绘图函数示例 pyplot基础图表函数概述 函数 说明 plt.plot(x,y,fmt, ...) 绘制一个坐标图 plt.boxplot(dat ...

  7. seaborn使用(绘图函数)

    seaborn使用(绘图函数) 数据集分布的可视化 分类数据的绘图 线性关系可视化 一.数据集分布的可视化 distplot kdeplot rugplot 1.distplot() 灵活的绘制单变量 ...

  8. opencv学习之路(4)、Mat类介绍,基本绘图函数

    一.Mat类创建 Mat img;//创建无初始化矩阵 Mat img1(,,CV_8UC1);//200行,100列(长200,宽100) Mat img2(Size(,),CV_8UC3,Scal ...

  9. Matlab 二维绘图函数(plot类)

    plot 功能 绘制二维图形的最基本函数. 语法 //x为向量时,以x的元素值为纵坐标,x的序号为横坐标绘制曲线. //x为矩阵时,以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线. polt( ...

随机推荐

  1. 【BZOJ4033】【HAOI2015】树上染色

    Description 有一棵点数为 N 的树,树边有边权.给你一个在 0~ N 之内的正整数 K ,你要在这棵树中选择 K个点,将其染成黑色,并将其他 的N-K个点染成白色 . 将所有点染色后,你会 ...

  2. [BZOJ]2589: Spoj 10707 Count on a tree II

    Time Limit: 20 Sec  Memory Limit: 400 MB Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v),你需要回答u xor last ...

  3. C语言程序设计第一次作业1

    (一)实验总结 1. 圆面积问题 1:求圆面积和周长 (1)输入圆的半径,计算圆的周长和面积. (2) (3) 2:判断闰年 (1)输入一个四位年份,判断其是否是闰年.闰年的判别条件是该年年份能被4整 ...

  4. RHEL 7修改ssh默认端口号

    RHEL7修改默认端口号(默认port22)初次安装系统完毕后默认情况下系统已经启动了sshd服务当然我们也可以先进行检查: 步骤1,检查是否已安装ssh服务 步骤2,检查服务是否已开启 如上图所示显 ...

  5. 借助Bodymovin播放svg动画

    svg动画,截取工具有点不忍直视了~~~ 为了实现上面的svg动画,可以使用bodymovin插件,简单配置之后,就可以直接可以实现在 AE(可视化操作,不用码代码)上面导出 svg的json数据,在 ...

  6. # electron-vue 尝试做个网易云音乐

    当跑起来electron第一刻 我发现这个浏览器头是不是有点丑 是不是可以隐藏起来呢,答案当然是可以的 src/main/index.js mainWindow = new BrowserWindow ...

  7. python常用执行方式&变量&input函数

    linux系统中执行py文件方式:  ./a.py 需要执行权限 chmod -R 777(最大权限) 常用执行方式: 1. ./a.py2. python a.py 文件内部头加上 #!/usr/b ...

  8. Eleven

    A. Eleven time limit per test : 1 second memory limit per test:  256 megabytes input:  standard inpu ...

  9. Python3 输入和输出

    输出格式美化 Python两种输出值的方式: 表达式语句和 print() 函数.(第三种方式是使用文件对象的 write() 方法; 标准输出文件可以用 sys.stdout 引用.) 如果你希望输 ...

  10. MyBatis批量新增和更新

    之前有开发任务一个接口里面有大量的数据新增和更新操作,导致十分缓慢.使用了批量操作之后速度有明显提升,几乎百倍千倍的速度提升. 博主之前统计过,通过普通接口一次数据库插入大概需要200ms,对于大量新 ...