4

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

是一张图片

这是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()
4

1 回答 1

4

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

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()
于 2012-10-17T23:00:12.810 回答