【Qt】Qt中QPainter的使用方法总结
1.添加头文件#include <QWidget>#include <QPainter>#include <QFont>#include <QBrush>#include <QColor>#include <QPaintDevice>#include <QPaintEngine>#include...
·
1.添加头文件
#include <QWidget>
#include <QPainter>
#include <QFont>
#include <QBrush>
#include <QColor>
#include <QPaintDevice>
#include <QPaintEngine>
#include <QPixmap>
#include <QPainterPath>
#include <QDebug>
#include <QLCDNumber>
#include <QRect>
#include <QRectF>
#include <QPoint>
#include <QPointF>
#include <QLabel>
2.添加.h代码,必须添加paintEvent事件,在protected中
protected:
void paintEvent(QPaintEvent *event);
3.添加.cpp代码,绘画事件必须在paintEvent事件中进行
void QDashboard::paintEvent(QPaintEvent *event)
{
//text
// QPainter painter(this);
// //设置画笔颜色
// painter.setPen(QColor(0,160,230));
// //设置字体 微软 点大小50 斜体
// QFont font;
// font.setFamily("Microsoft YaHei");
// font.setPointSize(50);
// font.setItalic(true);
// painter.setFont(font);
// painter.drawText(rect(),Qt::AlignCenter,"Qt");
// //画直线
// Q_UNUSED(event);
// QPainter painter(this);
// // 反走样
// painter.setRenderHint(QPainter::Antialiasing, true);
// // 设置画笔颜色
// painter.setPen(QColor(0, 160, 230));
// // 绘制直线
// painter.drawLine(QPointF(0, height()), QPointF(width() / 2, height() / 2));
// //画矩形
// Q_UNUSED(event);
// QPainter painter(this);
// // 反走样
// painter.setRenderHint(QPainter::Antialiasing, true);
// // 设置画笔颜色、宽度
// painter.setPen(QPen(QColor(0, 160, 230), 2));
// // 设置画刷颜色
// painter.setBrush(QColor(255, 160, 90));
// painter.drawRect(50, 50, 160, 100);
// //绘制弧线
// Q_UNUSED(event);
// // 矩形
// QRectF rect(90.0, 90.0, 80.0, 90.0);
// // 起始角度
// int startAngle = 30 * 16;
// // 跨越度数
// int spanAngle = 120 * 16;
// QPainter painter(this);
// painter.translate(50,50);
// painter.rotate(5);
// // 反走样
// painter.setRenderHint(QPainter::Antialiasing, true);
// // 设置画笔颜色、宽度
// painter.setPen(QPen(QColor(0, 160, 230), 2));
// // 绘制弧线
// painter.drawArc(rect, startAngle, spanAngle);
// painter.drawChord(rect,startAngle,spanAngle);
// painter.drawPie(rect,startAngle,spanAngle);
// //绘制椭圆
// Q_UNUSED(event);
// QPainter painter(this);
// // 反走样
// painter.setRenderHint(QPainter::Antialiasing, true);
// // 设置画笔颜色、宽度
// painter.setPen(QPen(QColor(0, 160, 230), 2));
// // 绘制椭圆
// painter.drawEllipse(QPointF(120, 60), 50, 20);
// // 设置画刷颜色
// painter.setBrush(QColor(255, 160, 90));
// // 绘制圆
// painter.drawEllipse(QPointF(120, 140), 40, 40);
// //绘制多边形
// Q_UNUSED(event);
// QPainter painter(this);
// // 反走样
// painter.setRenderHint(QPainter::Antialiasing, true);
// // 设置画笔颜色
// painter.setPen(QColor(0, 160, 230));
// // 各个点的坐标
// static const QPointF points[4] = {QPointF(30, 40), QPointF(60, 150), QPointF(150, 160), QPointF(220, 100)};
// // 绘制多边形
// painter.drawPolygon(points, 4);
// //绘制路线
// Q_UNUSED(event);
// QPainter painter(this);
// // 反走样
// painter.setRenderHint(QPainter::Antialiasing, true);
// painter.setBrush(QColor(168, 195, 73));
// QPainterPath path;
// path.moveTo(20,80);
// path.lineTo(20,30);
// path.cubicTo(80,0,50,50,80,80);
// path.closeSubpath();
// painter.drawPath(path);
// painter.setPen(QPen(QColor(0, 160, 230), 5));
// painter.drawPoint(20,80);
// painter.drawPoint(20,30);
// painter.drawPoint(50,50);
// painter.drawPoint(80,0);
// painter.drawPoint(80,80);
// //绘制图片
// Q_UNUSED(event);
// QPainter painter(this);
// // 反走样
// painter.setRenderHint(QPainter::Antialiasing, true);
// // 绘制图标
// painter.drawPixmap(rect(), QPixmap("://C:/Users/Administrator/Desktop/zfb.jpg"));
// //绘制自定义线路
// Q_UNUSED(event);
// QPainter painter(this);
// // 反走样
// painter.setRenderHint(QPainter::Antialiasing, true);
// painter.setBrush(QColor(168, 195, 73));
// QPainterPath path;
// path.moveTo(20,80);
// path.lineTo(20,30);
// path.cubicTo(80,0,50,50,80,80);
// path.quadTo(20,20,60,60);
// path.closeSubpath();
// painter.drawPath(path);
// painter.setPen(QPen(QColor(0, 160, 230), 5));
// painter.drawPoint(20,80);
// painter.drawPoint(20,30);
// painter.drawPoint(50,50);
// painter.drawPoint(80,0);
// painter.drawPoint(80,80);
// // 曲线上的点
// static QList<QPointF> points = QList<QPointF>() << QPointF(0, 0) << QPointF(100, 100) << QPointF(200, -100)
// << QPointF(300, 100) << QPointF(330, -80) << QPointF(350, -70);
// QPainterPath path(points[0]);
// //计算
// for (int i = 0; i < points.size() - 1; ++i) {
// // 控制点的 x 坐标为 sp 与 ep 的 x 坐标和的一半
// // 第一个控制点 c1 的 y 坐标为起始点 sp 的 y 坐标
// // 第二个控制点 c2 的 y 坐标为结束点 ep 的 y 坐标
// QPointF sp = points[i];
// QPointF ep = points[i+1];
// QPointF c1 = QPointF((sp.x() + ep.x()) / 2, sp.y());
// QPointF c2 = QPointF((sp.x() + ep.x()) / 2, ep.y());
// path.cubicTo(c1, c2, ep);
// }
// QPainter painter(this);
// //设置渲染提示为消除锯齿
// painter.setRenderHint(QPainter::Antialiasing, true);
// //设置画笔颜色和宽度
// painter.setPen(QPen(Qt::black, 2));
// //将坐标系转换为矢量
// painter.translate(40, 130);
// //绘制path
// painter.drawPath(path);
// // 绘制曲线上的点
// painter.setBrush(Qt::gray);
// //绘制曲线上的点
// for (int i = 0; i < points.size(); ++i) {
// painter.drawEllipse(points[i], 4, 4);
// }
Q_UNUSED(event);
// init_circle();
// change_color(color_bad,400,300);
// change_rate("bad");
// lcd->display(300);
change_dashboard(max_num,cur_num,good_num,medium_num,bad_num);
// QPainter painter(this);
// static QList<QPointF> points = QList<QPointF>() << point_base;
// //圆心
// painter.drawEllipse(points[0],4,4);
}
更多推荐

所有评论(0)