GTK Dialog Margin не работает - PullRequest
0 голосов
/ 26 мая 2018

Я создал маленький диалог с сеткой.Вот оно:

enter image description here

Но я не понимаю, почему не работает поле:

class PreferencesDialog(Gtk.Dialog):

    def __init__(self, parent):
        Gtk.Dialog.__init__(self, "Preferences", parent, 0)

        self.set_default_size(300, 300)

        grid = Gtk.Grid(column_spacing=10,
                         row_spacing=10)

        label = Gtk.Label("Custom Location")
        switch = Gtk.Switch()
        switch.set_active(False)

        grid.add(label)
        grid.margin_left = 20
        grid.margin_right = 20
        grid.margin_top = 20
        grid.margin_bottom = 20

        grid.attach(switch, 1, 0, 1, 1)

        box = self.get_content_area()
        box.add(grid)
        self.show_all()

И я вижу, чторазмер окна: 300х300 больше не работает.Не могли бы вы помочь мне?

1 Ответ

0 голосов
/ 26 мая 2018

Gtk виджеты основаны на GObject , что означает, что вам нужно получить доступ к свойствам виджета через атрибут props :

grid.props.margin_left = 20
grid.props.margin_right = 20
grid.props.margin_top = 20
grid.props.margin_bottom = 20

В качестве альтернативы выможно использовать функции установки :

grid.set_margin_left(20)
grid.set_margin_right(20)
grid.set_margin_top(20)
grid.set_margin_bottom(20)
...