Qt编程21:使用QPinter绘图四

绘制QPixmap、QImage

    //截取使用
    QRectF target(10.0, 20.0, 80.0, 80.0);
    QRectF source(0.0, 0.0, 100.0, 100.0);
    //绘制QPixmap
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing,true);
    QPixmap pix(":/new/owncloud_logo_blue.png");
    painter.drawPixmap(0,0,128,128,QPixmap(":/new/owncloud_logo_blue.png"));
    painter.drawPixmap(target,pix,source);


    //绘制QImage
    QImage image(":/new/owncloud_logo_blue.png");
    //将源图片source截取,然后会知道target位置
    QRectF target2(110.0, 20.0, 180.0, 180.0);
    QRectF source2(0.0, 0.0, 128.0, 128.0);
    painter.drawImage(target2, image, source2);
    //在坐标100,100处绘制QImage
    painter.drawImage(190,80,image);


 save()以及restore()的使用

        //构建绘制对象
        QPainter painter(this);
        //设置边框圆滑
        painter.setRenderHint(QPainter::Antialiasing, true);
        //设置画笔
        painter.setPen(QPen(Qt::black, 1, Qt::SolidLine, Qt::RoundCap,
                            Qt::MiterJoin));
        //设置填充
        painter.setBrush(QBrush(Qt::green, Qt::Dense3Pattern));

        //绘制椭圆
        painter.drawEllipse(20,20,100,50);

        //保存绘制工具状态
        painter.save();
        
        //重新设置绘制工具属性!!!!!!!!!!!!!
        painter.setPen(QPen(Qt::blue,50,Qt::SolidLine,Qt::RoundCap));
        painter.setBrush(QBrush(Qt::red));
        //设置扇形(跟弧线类似)
        painter.drawPie(10, 10, 200, 200, -75 * 16, 75 * 16);
        
        //恢复绘制工具状态
        painter.restore();
        
        //绘制矩形
        painter.drawRect(200,200,100,100);


 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值