QPainter 绘图

头文件

#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();
protected:
    /*
    *1.回调函数(所有的虚函数都是回调函数)
    *2.此函数不需要用户调用,在刷新的时候自动调用
    *   1.窗口显示的时候
    *   2.最大化,最小化
    *   3.窗口被遮挡,重新显示
    *   4.用户强制刷新的时候
    *   5.。。。
    * 3.如果想使用画家类在窗口中画图,操作必须在paintEvent函数中完成
    */
    void paintEvent(QPaintEvent*);
private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

源文件

#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <QFont>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}
void Widget::paintEvent(QPaintEvent *)
{
    //创建画家类对象
    QPainter p(this);   //指定绘图设备

    //创建新画笔
    QPen pen;
    pen.setColor(/*Qt::green*/QColor(0,255,0));
    pen.setWidth(10);   //像素
    pen.setStyle(Qt::DotLine);

    //闭合区域使用画刷,填充
    QBrush brush(Qt::blue);
    //QBrush brush(QPixmap::(":/tupian/tupian.jpg");---填充图片
    p.setBrush(brush);

    //将新画笔设置给画家类
    p.setPen(pen);
    //画背景图
    p.drawPixmap(0,0,QPixmap(":/tupian/tupian.jpg")); //绘制图片

    //画直线
    p.drawLine(QPoint(100,100),QPoint(300,500));

    //画椭圆
    p.drawEllipse(QPoint(200,200),100,50);

    //画矩形
    p.drawRect(400,200,200,200);

    //写字
    QFont font("华文彩云",48,75,true);
    p.setFont(font);
    p.drawText(100,100,"嘿嘿嘿");

    //窗口的最大宽度和高度
    int width=this->width();
    int height=this->height();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值