GTK标签宽度字符和对齐

时间:2019-04-02 19:50:23

标签: python gtk gtk3 gobject-introspection

Gtk.Label中包含一个Gtk.Grid,如下所示:

    self.__grid = Gtk.Grid()
    self.__grid.set_row_spacing(2)
    self.__grid.set_column_spacing(5)
    self.__grid.props.margin = 5
#...
    self.clock_label = Gtk.Label("N/A")
    self.clock_label.set_halign(Gtk.Align.START)
    self.__grid.attach(self.clock_label, current_col, current_row, 1, 1)

按预期工作。但是,我遇到了不想要的行为,这意味着随着秒数的推移,在其他位置设置的标签文本将使该列偏移(因为时钟标签是该列中最宽的东西),从而导致其右侧的所有元素随着弦线本身变宽(以8秒为单位)或变窄(以1秒为单位)来回移动。

为解决此问题,我在此标签的设置代码中添加了一行

    self.clock_label.set_width_chars(8)

瞧,它奏效了。但是,无论是否set_halign(),它都会坚持使文本居中。

我非常希望有一个标签,其文本从其单元格的左边框开始,但其宽度也要填充,以使字符串长度的变化无关紧要。

感谢您的帮助。 =)

1 个答案:

答案 0 :(得分:0)

在SO的“相关”列中给我答案后,我找到了答案here。事实证明,xalign(参数为0.0)正好按照我的意愿使标签靠左边界。万岁。

不过,我看不到halign实际贬值的地方。 Herehere。那不是吗?这让人感到困惑。