如何设置对齐方式,或者如何查找 PyGObject 文档

How to set the alignment, or how to find PyGObject documentation

我正在尝试右对齐 CellRenderer 中的一些文本内容。通过多次搜索,我发现了两种方法,但这些都行不通。使用粗体设置,您需要先启用此功能,所以我猜我还需要启用对齐设置,但还没有找到如何做到这一点。这无一例外地运行:

r = Gtk.CellRendererText()
r.props.width_chars = 10
r.set_property('alignment', Pango.Alignment.RIGHT) # no effect
r.props.alignment = Pango.Alignment.RIGHT # no effect
r.props.weight_set = True # not really needed
r.props.weight = Pango.Weight.BOLD # works, output is bold

这是我从粗体示例中猜到的但不起作用:

 r.props.alignment_set = True

错误是:'gi._gobject.GProps'对象没有属性'alignment_set'

查看这些参考资料,我没有在 GProps 上找到任何东西:

此资源确实说明了对齐方式,但我不清楚如何将此 C 代码转换为 Python/GObject:

我的问题是如何解决这个问题,这个 PyGObject 错误消息的参考手册在哪里,或者我应该如何编写右对齐代码?


更新: 我目前正在 this similar SO question 寻找线索。

关于TingPing的评论,我看了the set_alignment() method,试了这些:

r.set_alignment(Pango.Alignment.RIGHT) # error: set_alignment() takes exactly 3 arguments (2 given)
r.set_alignment(200, 0) # no error, no effect

此外,此方法似乎旨在在左侧创建一些像素填充,这不是我需要的:将文本对齐到单元格的右侧 space。


更新:

也许上面的代码很好,但也许 CellRenderer() 没有固有宽度,没有多余的 space 放在内容的左边。我想到这个是因为我想用 spaces 简单地向左填充我的数字单元格内容。然后我需要决定最大字段长度。也许 CellRenderer 没有 'know' 关于默认字段长度。我在 .props.width_chars 中添加了一个设置,但不幸的是,这并没有导致任何对齐。

通过 this C example 我试过这个来右对齐:

r.props.xalign = 1.0

而且有效! xalign 是要放在文本左侧的 free space 0..1.0 的分数。值 0.5 将使文本居中。