绘图事件:void paintEvent(QPaintEvent *);
展示:
代码
//widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
void paintEvent(QPaintEvent *);
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
//widget.cpp
#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 *){
QPainter painter(this); //this指代绘图设备,画家想当前窗口绘图
//画笔
QPen pen(QColor(255,0,0));
//设置画笔宽度
pen.setWidth(3);
//设置画笔风格
pen.setStyle(Qt::DotLine);
//画家使用画笔
painter.setPen(pen);
//画刷 可以 填充封闭的图案
QBrush brush(Qt::cyan);
//设置画刷风格
brush.setStyle(Qt::CrossPattern);
//画家使用画刷
painter.setBrush(brush);
//画线
painter.drawLine(QPoint(0,0),QPoint(100,100));
//画圆
painter.drawEllipse(QPoint(100,100),50,50);//center x y
//画矩形
painter.drawRect(QRect(20,20,50,50)); //x y w h
//画字
painter.setFont(QFont("华文彩云",20));
painter.drawText(QRect(0,200,150,100),"好好学习,天天向上");
}
Widget::~Widget()
{
delete ui;
}