填充模式Qt学习:QPainter之填充

发一下牢骚和主题无关:

        这节先介绍Qt的内置填充模式,我们用一个三次贝塞尔曲线的例子来说明。然后引入目前大批应用的三种渐变填充模式。
        填充模式应用setBrush()函数实现的。
        下图是三次贝塞尔曲线的内置填充模式 :

    填充和模式

 

 

         构造函数顶用设置了图片作为全部窗口部件的背景:(当然也可以用指定颜色填充)

setAutoFillBackground(true);
 QPalette palette;
 //palette.setColor(QPalette::Background, QColor(192,253,123));
 //palette.setColor(QPalette::Background, QColor(0,0,0));
 palette.setBrush(QPalette::Background, QBrush(QPixmap(":/4.png")));
 setPalette(palette); 

        具体的贝赛尔曲线和其填充如下代码:
 QPainter painter(this);
 painter.setRenderHint(QPainter::Antialiasing, true);
 
 QPainterPath path;
 path.moveTo(80,320);
 path.cubicTo(200,80,320,80,480,320);
 
 painter.setPen(QPen(Qt::red, 8));
 painter.setBrush(QBrush(Qt::yellow, Qt::Dense7Pattern));
 painter.drawPath(path);
    每日一道理
岭上娇艳的鲜花,怎敌她美丽的容颜?山间清澈的小溪,怎比她纯洁的心灵?

       这里说一下QPainterPath类, QPainterPath类可以通过连接基本的图形元夙来确定恣意的矢量形状:直线、椭圆、多边形、弧形、贝赛尔曲线和其他的绘制路径。绘制路径是基本的图元,从这个意义上来说,任何图形或图形组合都可以用绘制路径描述。
        路径可以确定一个边缘,由边缘锁定的区域可以用画刷来填充。本例设置内置的画刷类型为 Dense7Pattern。
        Qt内置的画刷类型有如下图所示:(来自于Qtassistant)

    填充和模式

 

 

     

文章结束给大家分享下程序员的一些笑话语录: 程序语言综述
CLIPPER 程序员不去真的猎捕大象,他们只是购买大象部分的库然后花几年的时间试图综合它们。
DBASE 程序员只在夜间猎捕大象,因为那时没人会注意到他们还在使用石弓。
FOXPRO 程序员开始使用更新更好的步枪,这使他们花掉比实际狩猎更多的时间学习新的射击技术。
C 程序员拒绝直接购买步枪,宁可带着钢管和一个移动式机器车间到非洲,意欲从零开始造一枝完美的步枪。
PARADOX 程序员去非洲时带着好莱坞关于猎捕大象的电影剧本,他们认为照剧本行事就会逮到一头大象。
ACCESS 程序员在没有任何猎象经验的经验下就出发了,他们穿着华丽的猎装、带着全部装备,用漂亮的望远镜找到了大象,然后发觉忘了带扳机。
RBASE 程序员比大象还要稀少,事实上,如果一头大象看到了一个RBASE程序员,对他是个幸运日。
VISUAL ACCESS 程序员装上子弹、举起步枪、瞄准大象,这使大象感到可笑,究竟谁逃跑。他们无法抓住大象,因为由于他们对多重控制的偏爱,他们的吉普车有太多的方向盘因而无法驾驶。
ADA、APL和FORTRAN 程序员与圣诞老人和仙女一样是虚构的。
COBOL 程序员对和自己一样濒临灭绝的大象寄予了深切的同情。

posted @ 2013-05-12 23:15  坚固66  阅读(5278)  评论(0编辑  收藏  举报