文章目录
- QPainter 绘图
- 绘图设备QPixmap
QPainter 绘图
- 绘图事件
void paintEvent()
- 声明一个画家对象
QPainter painter(this)
this指定绘图设备 - 画线、画圆、画矩形、画文字
- 设置画笔
QPen
设置画笔宽度 、风格 - 设置画刷
QBrush
设置画刷 风格
测试
#include "widget.h"
#include "ui_widget.h"
#include <QPainter> //画家类
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
}
void Widget::paintEvent(QPaintEvent *event)
{
//实例化画家对象 this 指定的是绘图的设备(在当前窗口画)
QPainter painter(this);
//设置画笔
QPen pen(QColor(255,0,0));
//设置画笔的宽度
pen.setWidth(3);
//设置画笔风格
pen.setStyle(Qt::DotLine);
//让画家使用这个画笔
painter.setPen(pen);
//设置画刷
QBrush brush(Qt::cyan);
//设置画刷风格
brush.setStyle(Qt::Dense7Pattern);
//让画家使用画刷
painter.setBrush(brush);
//画线
painter.drawLine(QPoint(0,0),QPoint(100,100));
//画圆 椭圆
painter.drawEllipse(QPoint(100,100),50,50);
//画矩形
painter.drawRect(QRect(20,20,50,50));
//画文字
painter.drawText(QRect(10,200,150,50),"好好学习,天天向上");
}
Widget::~Widget()
{
delete ui;
}
在显示窗口的时候,自动调用绘图事件
绘图设备QPixmap
QPixmap 对不同平台做了显示的优化
- QPixmap pix( 300,300) 画板
- pix.fill( 填充颜色 )
- 利用画家 往pix上画画 QPainter painter( & pix)
- 保存 pix.save( “路径”)
//Pixmap绘图设备 专门为平台做了显示的优化
QPixmap pix(300,300);
//填充颜色
pix.fill(Qt::white);
//声明画家
QPainter painter(&pix);
painter.setPen(QPen(Qt::green));;
painter.drawEllipse(QPoint(150,150),100,100);
//保存
pix.save("F:\\pix.png");