当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

Qt学习之路(26):反走样[VC/C++编程]

赞助商链接



  本文“Qt学习之路(26):反走样[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

本日持续前面的内容.既然已经进入2D画图部份,那么就先持续研究一下有关QPainter的东西吧!

反走样是图形学中的重要概念,用以避免“锯齿”现象的呈现.很多系统的画图API里面城市内置了反走样的算法,不过默许普通都是关闭的,Qt也不例外.下面我们来看看代码.这段代码仅仅给出了paintEvent函数,相信你可以很轻松地替换掉前面章节中的相关代码.

void PaintedWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
painter.setPen(QPen(Qt::black, 5, Qt::DashDotLine, Qt::RoundCap));
painter.setBrush(Qt::yellow);
painter.drawEllipse(50, 150, 200, 150);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, 5, Qt::DashDotLine, Qt::RoundCap));
painter.setBrush(Qt::yellow);
painter.drawEllipse(300, 150, 200, 150);
}

看看运行后的效果:

左边的是没有利用反走样技术的,右边是利用了反走样技术的.二者的差别可以很简单的看出来.

下面来看看相关的代码.为了尝试画笔的款式,这里成心利用了一个新的画笔:

painter.setPen(QPen(Qt::black, 5, Qt::DashDotLine, Qt::RoundCap));

我们对比着API去看,第一个参数是画笔颜色,这里设置为黑色;第二个参数是画笔的粗细,这里是5px;第三个是画笔款式,我们利用了 DashDotLine,恰好像其名字所示,是一个短线和一个点相间的范例;第四个是RoundCap,也就是圆形笔帽.然后我们利用一个黄色的画刷填充,画了一个椭圆.

背面的一个和前面的非常类似,唯一的辨别是多了一句

painter.setRenderHint(QPainter::Antialiasing, true);


  以上是“Qt学习之路(26):反走样[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>Qt学习之路(28):坐标变更</b>
  • Qt学习之路(29):画图设备
  • <b>Qt学习之路(30):Graphics View Framework</b>
  • <b>Qt学习之路(31):一个简易画板的实现(QWidget)</b>
  • Qt学习之路(32):一个简易画板的实现(Graphics View)
  • Qt学习之路(33):国际化(上)
  • <b>Qt学习之路(34):国际化(下)</b>
  • <b>Qt学习之路(9):深化理解信号槽</b>
  • Qt学习之路(10):Meta-Object系统
  • <b>Qt学习之路(11):MainWindow</b>
  • <b>Qt学习之路(12):菜单和工具条</b>
  • <b>Qt学习之路(13):菜单和工具条(续)</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .