Qt界面简单绘图学习笔记
来源:互联网 发布:手机添加网络 编辑:程序博客网 时间:2024/09/21 06:37
QT界面绘图
1.paintEvent事件
1.1 只能在该事件内进行绘图1.2 该事件会在改变窗口大小,调用update()函数时进行刷新。1.3 需要加头文件#include<QPainter>1.4 需要在内创建一个QPainter类的对象才能进行绘图: QPainter p(this);this表示在该窗口绘图。
2.画线条
2.1 使用方法p.drawLine2.2 直接传参:
p.drawLine(10,10,100,100);//前两个参数表示前一个点的坐标,后两个参数表示下一个点的x和y坐标。
2.3 先使用QLine(QLineF)类创建线条,在画线
QLineF line(10.5,12.8,100.9,110.2);//坐标为浮点数 QLine line2(120,100,200,200);//坐标为整型值 p.drawLine(10,10,100,100); p.drawLine(line); p.drawLine(line2);
3.画矩形
3.1 使用方法p.drawRect3.2 直接传参:
p.drawRect(10,10,200,200);//前两个参数表示矩形左上角顶点的x和y坐标。后两个参数代表矩形的宽度和高度。
3.3 先使用QRect(QRectF)类创建矩形,在传参画矩形
//参数为浮点数,width()和height()方法能获取到当前窗口的宽度和高度,所以该矩形能随着窗口大小动态变化。 QRectF rectangle(10.0,10.0,width()-20,height()-40); p.drawRect(rectangle);
4.画圆,椭圆
4.1 使用方法p.drawEllipse,参数需要的是矩形,画的是矩形的内接椭圆,如果矩形为正方形,则画的是圆形。4.2 直接传参:
p.drawEllipse(10,10,20,20);//参数含义画矩形相同
4.3 先使用先使用QRect(QRectF)类创建矩形,在传参画矩形的内接椭圆
QRectF rectangle(10.0,10.0,width()-20,height()-40); p.drawEllipse(rectangele);
5.画扇形
5.1 使用方法p.drawPie 参数为三个,分别是椭圆的外接矩形,起始角度(三点钟方向为0°,逆时针计算),和转过的角度。5.2 定义参数
QRectF rectangle(10.0,10.0,width()-20,height()-40); int startAngle = 30 * 16 ;//起始角度,单位为1/16度 30 * 16就是30度 int spanAngle = 120 * 16;//夹角 p.drawPie(rectangle,startAngle,spanAngle);//画扇形
6.改变线条和填充
6.1 定义画笔对象和填充对象
QPen pen;//画笔对象 QBrush brush;//填充对象
6.2 设置画笔的粗细和填充的方式及颜色
pen.setColor(QColor(0,255,255,255));//画笔颜色 pen.setWidth(2);//画笔粗细 brush.setColor(Qt::black);//填充颜色 brush.setStyle(Qt::CrossPattern);//填充类型
6.3 关键是要将画笔和填充和QPainter对象绑定
p.setBrush(brush);//给p绑定一个填充对象brush p.setPen(pen);//给p绑定一个指定的画笔pen
阅读全文
0 0
- Qt界面简单绘图学习笔记
- VS 学习笔记 简单绘图
- opencv 简单绘图学习笔记
- QT界面简单的图形移动和鼠标绘图
- QT学习笔记15绘图和绘图设备
- QT简单绘图
- qt绘图简单总结
- MFC学习笔记之简单绘图一
- MFC学习笔记之简单绘图二
- MFC学习笔记之简单绘图二
- MFC学习笔记之简单绘图一
- Qt学习(一)简单界面
- QT笔记之绘图
- QT学习笔记(四) QtDesigner 实现简单的快捷键操作界面
- Qt学习笔记之一,登录界面。
- QT学习笔记(实现登录注册界面)
- QT学习笔记(2):界面线程
- QT之GUI学习笔记( 二十三)---绘图设备
- muduo网络库脉络分析(2)
- 无线网络覆盖
- xlistview
- Js 的六个迭代方法(写的太赞,不得不转)
- MANIFEST.MF详解及配置的注意事项
- Qt界面简单绘图学习笔记
- shell脚本
- xlistview布局
- Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljav
- Nginx服务器架构初探---模块化设计
- WCF、WebAPI、WCFREST、WebService之间的区别
- equals与==的区别?
- 结构体初始化
- java基础 基本类型转换