画家QPainter能画很多简单的线条和矩形,要加载图片则需要用QPixmap、QBitmap、QImage和 QPicture。
示例项目:01_PaintEvent 代码:
#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <QPixmap>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
void Widget::paintEvent(QPaintEvent *event)
{
//方法一
//QPainter p(this);
//方法二
QPainter p; //创建画家对象;
p.begin(this); //指定当前窗口为绘图设备;
//绘图操作
//p.drawXXX(); //绘制各种不同的图形;
// QPixmap pixmap("../images/starry_sky.jpg");
// p.drawPixmap(rect(),pixmap);
//定义画笔
QPen pen;
pen.setWidth(5);
pen.setColor(QColor(255,0,0));
pen.setStyle(Qt::DashDotLine);
p.setPen(pen);
p.drawLine(50,50,150,50);
p.drawLine(50,50,50,150);
//创建画刷
QBrush brush;
brush.setColor(Qt::black);
brush.setStyle(Qt::Dense6Pattern);
p.setBrush(brush);
// 画矩形;
p.drawRect(150,150,100,50);
//画圆形
p.drawEllipse(250,250,40,40);
p.end();
}
运行效果: