QT学习之路 2 ——Qt 之 “涂鸦师“ QPainter painter(this);

作者: Jintao
日期:2021-9-14
简介: QT学习之路 2 ——Qt “涂鸦师” 之 QPainter painter(this);
在这里插入图片描述
Qt “涂鸦师” (QPainter ) 是专门用来负责在Qt界面上的图形&图片的添加的。

  1. Qt “涂鸦师” 之 神笔(QPen)

    
    QPen pen1(Qt::green);			// 使用Qt自带的设置笔的颜色
    QPen pen(QColor(255,0,0));    	// 使用RGB来设置笔的颜色
    pen1.setWidth(4);				// 笔宽度
    painter.setPen(pen1);			// 让Qt "涂鸦师" 使用该笔

	
  • Qt 自带颜色选取
    在这里插入图片描述

  • 以下code输出图示例

在这里插入图片描述

void MainWindow::paintEvent(QPaintEvent *)
{

    QPainter painter(this);

    // 设置笔的颜色
    QPen pen1(Qt::green);
    pen1.setWidth(4);
    painter.setPen(pen1);

    painter.drawLine(QPoint(0,0), QPoint(100,100));
    painter.drawText(QRect(10, 200,100,50), "风水轮流转");


    // 设置笔的颜色
    QPen pen2(QColor(255,0,0));
    pen2.setWidth(2);
    painter.setPen(pen2);

    painter.drawLine(QPoint(100,100), QPoint(200,0));
    painter.drawText(QRect(150, 200,100,50), "风水轮流转");

	painter.end();  // Qt "涂鸦师" 休息
}
  • 神笔(QPen) 的样式多样性
    在这里插入图片描述

  • 使用Qt神笔演示效果
    在这里插入图片描述

void MainWindow::paintEvent(QPaintEvent *)
{

    QPainter painter(this);
    // 设置笔的颜色
    QPen pen1(Qt::green);
    pen1.setWidth(4);

    // 设置笔的样式
    pen1.setStyle(Qt::DashLine);

    painter.setPen(pen1);



    painter.drawLine(QPoint(0,0), QPoint(100,100));
    painter.drawText(QRect(10, 200,100,50), "风水轮流转");


    // 设置笔的颜色
    QPen pen2(QColor(255,0,0));
    pen2.setWidth(2);
    painter.setPen(pen2);

    painter.drawLine(QPoint(100,100), QPoint(200,0));
    painter.drawText(QRect(150, 200,100,50), "风水轮流转");
    
	painter.end();  // Qt "涂鸦师" 休息
}
  1. Qt “涂鸦师” 之 神刷子(QBrush)
	QBrush brush(Qt::green);		// 创建"神刷子,并赋予刷子的颜色
    painter.setBrush(brush);		// 让Qt "涂鸦师" 使用该神刷子

在这里插入图片描述

void MainWindow::paintEvent(QPaintEvent *)
{

    QPainter painter(this);
    QBrush brush1(Qt::green);
    painter.setBrush(brush1);
    painter.drawEllipse(QRectF(300.0, 20.0, 80.0, 60.0));   //(左上角的 X 坐标,左上角的 Y 坐标,椭圆的边框的宽度,椭圆的边框的高度)
    painter.drawEllipse(QPoint(200,80), 40,30);   // (圆心)x半径,y半径

    QBrush brush2(Qt::gray);
    painter.setBrush(brush2);
    
	painter.end();
}

在这里插入图片描述
在这里插入图片描述

void MainWindow::paintEvent(QPaintEvent *)
{

    QPainter painter(this);
    QBrush brush1(Qt::green);
    brush1.setStyle(Qt::BDiagPattern);		// 添加画刷样式
    painter.setBrush(brush1);
    painter.drawEllipse(QRectF(300.0, 20.0, 80.0, 60.0));   //(左上角的 X 坐标,左上角的 Y 坐标,椭圆的边框的宽度,椭圆的边框的高度)
    painter.drawEllipse(QPoint(200,80), 40,30);   // (圆心)x半径,y半径

    QBrush brush2(Qt::gray);
    painter.setBrush(brush2);
    
	painter.end();
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xujintao1000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值