添加了抗锯齿 和 画家状态保存
#include "widget.h"
#include "ui_widget.h"
#include <QPainter> //画家类
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->resize(1400,1000);
this->setWindowTitle("绘图本");
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *event)
{
// //实例化画家对象 this说明在当前widget下画画(指定的是绘图的设备)
// QPainter painter(this);
// //设置画笔
// QPen pen(QColor(255,0,0));
// //设置画笔宽度
// pen.setWidth(3);
// //设置画笔风格
// pen.setStyle(Qt::DotLine);
// //画刷 设置填充色
// QBrush brush(Qt::cyan);
// //设置画刷风格
// brush.setStyle(Qt::Dense7Pattern);
// //让画家使用画刷
// painter.setBrush(brush);
// //让画家使用这个笔
// painter.setPen(pen);
// //画线
// painter.drawLine(QPoint(0,0),QPoint(100,100));
// //画圆 Ellipse椭圆
// painter.drawEllipse(QPoint(100,100),50,50);
// //画矩形
// painter.drawRect(QRect(20,20,50,50));
// //画文字
// painter.drawText(QRect(10,200,200,50),"好好学习,天天向上");
// 高级设置
QPainter painter(this);
// painter.drawEllipse(QPoint(100,50),50,50);
// //设置 抗锯齿能力 效率较低
// painter.setRenderHint(QPainter::Antialiasing);
// painter.drawEllipse(QPoint(200,50),50,50);
//画矩形
painter.drawRect(QRect(20,20,50,50));
//移动画家 移动了 100,0 的位置
painter.translate(100,0);
//保存画家状态
painter.save();
painter.drawRect(QRect(20,20,50,50));
painter.translate(100,0);
//还原画家保存状态
painter.restore();
painter.drawRect(QRect(20,20,50,50));
}