博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Qt5学习笔记(2)——二维图形
阅读量:4961 次
发布时间:2019-06-12

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

Qt的二维图形引擎是基于QPainter类的。QPainter既可以绘制几何形状(点、线、矩形、椭圆、弧形、弦形、饼状图多边形和贝塞尔曲线),也可以绘制像素映射图像和文字。

功能还是十分强大的,下面直接放我写的代码:

QPainter painter(this);     QPen pen;     // 画一条直线     //pen.setStyle(Qt::DashLine);//设置为虚线     pen.setColor(Qt::red);//设置画笔为红色     pen.setWidth(12);//设置画笔宽度     painter.setPen(pen);//设置画笔     painter.drawLine(rect().topLeft(), rect().bottomRight());     painter.drawLine(10,50,50,200);     // 画多个点(5个)     pen.setColor(Qt::gray);//设置画笔为红色     pen.setWidth(6);//设置画笔宽度     painter.setPen(pen);//设置画笔     QPointF pointf[5];     for (int i=0; i<5; ++i)     {         pointf[i].setX(20.0+i*50.0);         pointf[i].setY(400.0);     }     painter.drawPoints(pointf, 5);    // 画一个空心正方形     pen.setColor(Qt::darkRed);     pen.setWidth(5);     painter.setPen(pen);     painter.drawRect(220, 5, 100, 100);     // 画一个实心矩形     pen.setColor(Qt::red);     pen.setWidth(8);     painter.setPen(pen);     QBrush bruch(Qt::SolidPattern);//画刷     bruch.setColor(Qt::green);     painter.setBrush(bruch);//设置画刷     painter.drawRect(QRect(350, 10, 100, 200));     //画一个实心圆和扇形     pen.setColor(Qt::blue);     pen.setWidth(13);     painter.setPen(pen);     bruch.setColor(Qt::red);     painter.setBrush(bruch);     painter.drawEllipse(500,10,150,150);//园,第1,2个参数分别表示圆距左上角的像素数。第3,4个参数表示圆的宽度和高度。     painter.drawPie(450,200,200,200,0,1000);//扇形,前四个参数定义圆(与drawEllipse()函数相同)。后两个参数定义圆的样式。0为起始角度(实际单位为1/16度),1000为扇形所展开的角度(单位也为1/16度)。     // 画一个多边形(三角形)     QPolygonF polygon;     polygon << QPointF(350.0, 320.0) << QPointF(400.0, 400.0) << QPointF(280.0, 400.0);//顺时针取点     pen.setColor(Qt::yellow);     pen.setWidth(7);     painter.setPen(pen);     painter.setBrush(bruch);     painter.drawPolygon(polygon, Qt::WindingFill);     //画一个QString     pen.setColor(Qt::black);     QFont font("arial",25,QFont::Bold,true); //设置字体的类型,大小,加粗,斜体     font.setUnderline(true);//设置下划线     font.setOverline(true);//设置上划线     font.setCapitalization(QFont::SmallCaps);//设置小型字母大写     font.setLetterSpacing(QFont::AbsoluteSpacing,5);//设置间距     painter.setFont(font);//添加字体     painter.setPen(pen);     painter.drawText(50, 300, "windows QT");     //显示中文字     pen.setColor(Qt::black);     QFont font1("宋体",12,QFont::DemiBold,false); //设置字体的类型,大小,黑体,不斜体     font.setUnderline(false);//设置下划线     font.setOverline(false);//设置上划线     font.setLetterSpacing(QFont::AbsoluteSpacing,1);//设置间距     painter.setFont(font1);//添加字体     painter.setPen(pen);     painter.drawText(245, 130, "正方形");     painter.drawText(380, 235, "矩形");     painter.drawText(557, 185, "圆形");     painter.drawText(320, 425, "三角形");     painter.drawText(580, 325, "扇形");

下面是代码运行的结果:

转载于:https://www.cnblogs.com/raiven2008/p/4215197.html

你可能感兴趣的文章
Infix to Postfix Expression
查看>>
SELECT LOCK IN SHARE MODE and FOR UPDATE
查看>>
Perl/Nagios – Can’t locate utils.pm in @INC
查看>>
目录导航「深入浅出ASP.NET Core系列」
查看>>
简易爬虫(爬取本地数据)
查看>>
python 进程间通信
查看>>
深拷贝 vs 浅拷贝 释放多次
查看>>
Javascript 有用参考函数
查看>>
点群的判别(三)
查看>>
GNSS 使用DFT算法 能量损耗仿真
查看>>
【转】Simulink模型架构指导
查看>>
MYSQL数据库的导出的几种方法
查看>>
SQL Server-5种常见的约束
查看>>
硬件之美
查看>>
[转载]java开发中的23种设计模式
查看>>
表格的拖拽功能
查看>>
函数的形参和实参
查看>>
文字过长 用 ... 表示 CSS实现单行、多行文本溢出显示省略号
查看>>
1Caesar加密
查看>>
【TP SRM 703 div2 500】 GCDGraph
查看>>