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

时间:2016-03-07 00:07:36

标签: python-2.7 gtk3 pygobject pango

我正在尝试在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

除了这个方法似乎打算在左边创建一些像素填充,这不是我需要的:将文本对齐到单元格空间的右边。

更新

也许上面的代码很好,但也许CellRenderer()没有固有的宽度,没有多余的空间放在内容的左边。我想到了这一点,因为我只想用空格填充我的数字单元格内容。然后我需要决定最大字段长度。也许CellRenderer不知道默认的字段长度。我为.props.width_chars添加了一个settinge,但不幸的是,这并没有导致任何严格的对齐。

1 个答案:

答案 0 :(得分:0)

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

r.props.xalign = 1.0

它有效! xalign是放置在文本左侧的可用空间0..1.0的分数。值0.5将使文本居中。