QPainter是个多才多艺的家伙,除了会画画还会写字。而且写字的姿势还挺多。

blob.png

    这么多函数,看得人眼花缭乱。不过仔细观察一下会发现很多参数都是重复的。

    text: 就是要写的文字。

    position: 指定写的文字的位置。(x,y)同理。

    rectangle:指定写的文字的矩形区域,这个和绘制图片的矩形不一样,它不会根据矩形缩放文字。(x,y,width,height)同理。

    flag:指定绘制的标志,如左对齐、右对齐、居中等等。

    boundingRect:指的是绘制的文字实际占用的矩形区域。是个返回值。

    option: 描述了文字,例如对齐方式、文字方向等。

 

    例:  

blob.png    例子指定在矩形(50,80,60,30)中以居中的位置绘制“这是文本”几个字。接着又绘制了这个矩形以及函数返回给我们的实际占用区域。可以看出文字没有占满指定矩形范围。实际上文字的大小取决于字体QFont。

    我们设置字体看看效果:

  blob.png

    文字字体设置太大已经超出了指定的绘制范围了。超出的部分则不会被绘制。


    QPainter绘制文字除了指定绘制区域外,还可以指定位置进行绘制。这种方式不需要设置多余的参数,缺点就是使用时不太好控制。

    例:

    blob.png

    例子中除了绘制文本外,我们还这个位置用红点描出来了,可以看出所谓的位置指的是文本左下角的位置。


相关文章:

Qt如何绘制(五)

Qt字体初识

Qt如何绘制七——变换