如何设置对齐方式,或者如何查找 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 将使文本居中。
我正在尝试右对齐 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 将使文本居中。