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

ラベルをダイアログにパックするときに、「expand」および「fill」プロパティを設定してみてください。

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 に答える