Qt学习笔记 简单绘图

 

创建类,继承自QWidget

重载函数  paintEvent

void CtrlDraw::paintEvent(QPaintEvent *event)
{

    //创建Image
    QImage image(this->width(),this->height(),QImage::Format_ARGB32);
    QPainter p;
    p.begin(&image);
    //设置渲染,启动反锯齿
    p.setRenderHint(QPainter:: Antialiasing, true);
    //背景色
    p.fillRect(0, 0,this->width(),this->height(), Qt::black);
    //画笔
    QPen pen(Qt::white, 2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
    //设置画笔
    p.setPen(pen);
    //直线
    p.drawLine(10,10,100,100);

    pen.setColor(Qt::yellow);
    pen.setWidth(3);
    pen.setStyle( Qt::DashLine);
    p.setPen(pen);
    //圆或椭圆
    p.drawEllipse(10, 10,30, 30);

    pen.setStyle( Qt::SolidLine);
    p.setPen(pen);
    //圆弧(逆势针 1/16th of a degree)
    p.drawArc(50,50,80,80,90*16,90*16);

    //印字
    p.fillRect(50,10,100,20, Qt::gray);
    p.drawText(50,10,100,20, Qt::AlignCenter, "测试(居中)");

    QFont font("Microsoft YaHei",20);
    // 使用字体
    p.setFont(font);

    //字体参考线
    p.drawLine(20,150,100,150);
    p.drawLine(20,150,20,100);
    QFontMetrics fontMetrics(font);

    p.drawText(QPointF(105,150-fontMetrics.height()/2 +fontMetrics.ascent()), "X");
    QRect rect = fontMetrics.boundingRect("Y");
    p.drawText(QPointF(20-rect.width()/2,100-fontMetrics.height()+fontMetrics.ascent()), "Y");


    p.end();

    //界面显示Image
    QPainter painter(this);
    painter.drawImage(QRectF(0, 0,this->width(), this->height()), image);


}

 

界面中添加控件 QWidget,并提升为自己定义的类,

如需刷新,调用 控件 repaint();

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值