如何扩展Gtk标签以填充整个水平空间?

时间:2012-10-17 19:15:16

标签: gtk label pygtk

我正在尝试在对话框中插入文本标签,但是当我将对象设置为(X = 0,Y = 0.5)并且换行设置为True时,文本不会填充整个水平空间。 / p>

Here是一张图片

这是python中的示例代码:

import gtk

if __name__ == "__main__":

    lbl = gtk.Label('Presione el botón "Adelante" para iniciar la instalación del sistema. Después de este paso no podrá detener la instalación, así que asegúrese de que sus datos son correctos.')
    lbl.set_line_wrap(True)
    lbl.set_alignment(0, 0.5)
    lbl.set_justify(gtk.JUSTIFY_FILL)
    lbl.show()

    diag = gtk.Dialog()
    diag.set_size_request(640, 480)
    diag.vbox.pack_start(lbl)
    diag.run()

1 个答案:

答案 0 :(得分:3)

将标签打包到对话框中时,请尝试设置“展开”和“填充”属性:

diag.vbox.pack_start(lbl, True, True, 0)

修改

你是对的。抱歉。根据GTK参考手册:

  

请注意,将换行设置为TRUE不会使标签换行在其父容器的宽度,因为GTK +窗口小部件在概念上无法使其请求取决于父容器的大小。对于包装在特定位置的标签,使用gtk_widget_set_size_request()设置标签的宽度。

因此,请在GtkLabel而不是GtkDialog上设置尺寸请求,然后在对话框中设置尺寸请求,并让对话框自行调整大小。

# -*- coding: utf-8 -*-
import gtk

if __name__ == "__main__":

    lbl = gtk.Label('Presione el botón "Adelante" para iniciar la instalación del sistema. Después de este paso no podrá detener la instalación, así que asegúrese de que sus datos son correctos.')
    lbl.set_line_wrap(True)
    lbl.set_alignment(0, 0.5)
    lbl.set_justify(gtk.JUSTIFY_FILL)
    lbl.set_size_request(640, 480)
    lbl.show()

    diag = gtk.Dialog()
    diag.set_resizable(True)
    diag.vbox.pack_start(lbl, True, True, 0)
    diag.run()