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