class documentation

在Cairo上下文中绘制文本的类。

与原始的Cairo文本绘制方法不同,此类支持多行文本。

方法 __init__ 构造一个新的实例,该实例将在给定的Cairo context上绘制给定的text
方法 draw 在绘图器的当前边界框内绘制文本。
方法 draw_at 通过在Cairo上下文中设置适当的路径并填充它来绘制文本。xy 表示绘制的起始坐标。如果它们都是 None,则将使用上下文的当前位置。
方法 get_text_layout 计算当前文本的布局。xy 表示绘制的起始坐标。如果它们都是 None,则将使用上下文的当前位置。
方法 text.setter 设置将要绘制的文本。
方法 text_extents 返回文本的X-偏移、Y-偏移、宽度、高度、X-前进和Y-前进。
类变量 BOTTOM 未记录
类变量 CENTER 未记录
类变量 LEFT 未记录
类变量 RIGHT 未记录
类变量 TOP 未记录
实例变量 halign 未记录
实例变量 valign 未记录
属性 text 返回要绘制的文本。
方法 _iterlines 逐行遍历标签,并返回一个包含每行以下内容的元组:行本身、行的宽度和行的X轴偏移量。
方法 _iterlines_wrapped 逐行遍历标签并返回一个元组,其中包含每行的以下内容:行本身、行的宽度和行的X-bearing。
实例变量 _text 未记录

继承自 AbstractCairoDrawer:

方法 bbox.setter 设置此绘图器将绘制的绘图区域的边界框。
实例变量 context 未记录
属性 bbox 此绘图器将绘制的绘图区域的边界框。
方法 _mark_point 在画布上用一个小圆圈标记给定的点。主要用于调试目的。
实例变量 _bbox 未记录
def __init__(self, context, text='', halign='center', valign='center'): (source)

构造一个新实例,该实例将在给定的Cairo context上绘制给定的text

def draw(self, wrap=False): (source)

在绘图器的当前边界框内绘制文本。

由于类本身是AbstractCairoDrawer的一个实例,它有一个名为bbox的属性,该属性将被用作边界框。

参数
wrap是否允许在文本不适合水平边界框时重新换行。
def draw_at(self, x=None, y=None, width=None, wrap=False): (source)

通过在Cairo上下文中设置适当的路径并填充它来绘制文本。xy 表示绘制的起始坐标。如果它们都是 None,则将使用上下文的当前位置。

在此方法中不考虑垂直对齐设置,因为文本不是在框内绘制的。

参数
x布局应开始的参考点的X坐标。
y布局应开始的参考点的Y坐标。
width文本将适应的框的宽度。仅在文本右对齐或居中对齐时才有意义。如果任何一行的长度超过框的宽度且wrapFalse,文本将溢出框。
wrap是否允许在文本超出给定宽度时重新换行。
def get_text_layout(self, x=None, y=None, width=None, wrap=False): (source)

计算当前文本的布局。xy 表示绘制的起始坐标。如果它们都是 None,则将使用上下文的当前位置。

在此方法中不考虑垂直对齐设置,因为文本不是在框内绘制的。

参数
x布局应开始的参考点的X坐标。
y布局应开始的参考点的Y坐标。
width文本将适应的框的宽度。仅在文本右对齐或居中对齐时才有意义。如果任何一行的长度超过框的宽度且wrapFalse,文本将溢出框。
wrap是否允许在文本不适合给定宽度时重新换行。
返回
一个由(x, y, line)元组组成的列表,其中xy指的是Cairo画布上的参考点,而line指的是应该在那里绘制的相应文本。
@text.setter
def text(self, text): (source)

设置将要绘制的文本。

如果 textNone,它将被映射为一个空字符串;否则,它将被转换为一个字符串。

def text_extents(self): (source)

返回文本的X轴偏移、Y轴偏移、宽度、高度、X轴前进和Y轴前进。

对于多行文本,X-bearing 和 Y-bearing 对应于第一行,而 X-advance 是从最后一行提取的,Y-advance 是所有 Y-advance 的总和。宽度和高度对应于文本的整个边界框。

未记录

未记录

未记录

未记录

未记录

未记录

未记录

返回要绘制的文本。

def _iterlines(self): (source)

逐行遍历标签并返回一个元组,其中包含每行的以下内容:行本身、行的宽度和行的X轴偏移量。

def _iterlines_wrapped(self, width): (source)

逐行遍历标签并返回一个元组,其中包含每行的以下内容:行本身、行的宽度和行的X轴偏移量。

此方法与_iterlines()的区别在于,此方法在必要时可以重新换行。

参数
width文本将适应的框的宽度。如果行宽超过此宽度,则行将被换行。

未记录