如何创建多行按钮

时间:2010-05-13 00:19:26

标签: python button label pygtk

我正在尝试使用PyGTK创建一个多行按钮。我有一个标签添加到我的gtk.Button的子类,但我无法调整标签的大小按钮。如果标签使其具有自己的大小,即使使用label.set_line_wrap(True)也没有文本换行,因为标签只是调整大小超出按钮的范围。我会将标签的大小设置为按钮的大小,但除非我使用set_size_request明确设置按钮的大小,否则我无法找到按钮的大小(它包含在按钮中)表)。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

一般来说,GTK +无法做到这一点,因为没有小部件“协商”大小的阶段。相反,小部件报告它们所需的大小,然后在该容器之后分配一些区域(通常等于或大于所需的区域)。在GTK + 3中,将有一个高度宽度协商,所以如果您的按钮(而不是它的标签)无论如何都要分配几行,它将能够请求更少的宽度并包装其文本。

在2.x中,您可以做的最好的事情可能是使用width_chars的{​​{1}}属性:

gtk.Label

答案 1 :(得分:0)

我发现在Python 3.4 GTK + 3中,您需要做的就是在需要中断的地方添加\n。它没有自动装配,但您可以为按钮对象提供多行标签。例如,

self.button = Gtk.Button(label="A lotta text \n and a lotta more.")