灵魂伴侣
在第一个例子中,我们将在窗口中显示一些歌词。
|
|
这段代码中,我们显示了来自于 Natasha Bedingfields Soulmate 这首歌的歌词的一部分。
|
|
此处我们选择 font face。这个方法接收三个参数,font family,font slant 和font weight.
|
|
此处我们指定字体大小。
|
|
我们通过为文本指定位置并调用 show_text()
方法将文本显示在窗口中。
居中的文字
接下来我们将演示如何在窗口中居中显示文字。
|
|
这段代码将一段文字放在窗口的中心。即使调整了窗口的大小,也依然会位于中心。
|
|
为了使文字位于窗口的中心,需要获取窗口的客户区域的大小。
|
|
我们选择一个字体及字体大小用于显示。
|
|
我们获取文本 extents,这是一些用来描述文字的数字。我们的例子需要文字的宽度。
|
|
我们将文字定位在窗口的中间,并用 show_text()
显示它。
阴影文字
现在我们将在窗口中创建一段阴影文字。
|
|
为了创建阴影,我们以不同的颜色绘制文字两次。第二段文字向右下方移动了一点。
|
|
第一段文字用黑色墨水绘制。它做为阴影。
|
|
第二段文字以一些灰色墨水绘制。它向右下边移动了 3px。
渐变填充文字
下面的例子将创建一个很棒的效果。我们将用线性渐变来填充文字。
|
|
我们在窗口中绘制一段文字,并以线性渐变填充。颜色是一些桔黄色。
|
|
为了使它的视觉效果更吸引人,我们用深灰色来绘制背景。
|
|
创建线性渐变。
|
|
文字被显示于窗口中。我们用渐变作为 source 来绘制。
逐字符显示
在这个效果中,我们将逐字符显示一段文字。字符的显示将有一些延时。
|
|
在我们的例子中,我们以一定的延时,逐字符的在 GTK 窗口中显示 “ZetCode” 字串。
|
|
这是将在窗口中显示的字符的列表。
|
|
我们以 bold weight 选择一个 Courier font face。
|
|
此处我们逐字符绘制文本。我们获取每个字符的宽度,然后计算沿 x 轴需要移动的距离。
Glyphs
show_text()
方法只适合简单的文本渲染。Cairo 开发者称它为玩具方法。更专业的文本渲染通过 glyphs 完成。一个 glyph 是为一个字符提供一个外形的图形符号。一个字符提供一种含义。它可以有多个 glyphs。字符没有内在的外观。glyph 没有内在的含义。
注意,许多需要处理文字的通用编程需要由 Pango 库来处理。
|
|
这段代码显示选中的字体中的 700 个 glyphs。
|
|
glyphs 列表将存储三个整数值。第一个值是 glyph 在选中的字体类型中的索引。第二个和第三个是 glyph 的 x,y 位置。
|
|
show_glyphs()
方法在窗口中显示 glyphs。
本章讨论了 PyCairo 中的文本。
Done.