Класс ButtonBox в gtk API служит базовым классом для контейнеров, в которых можно удерживать несколько кнопок по горизонтали или по вертикали. Два подкласса HButtonBox и VButtonBox являются производными от класса ButtonBox, который сам является подклассом класса gtk.Box.
Блок кнопок используется для обеспечения согласованного расположения кнопок в приложении. Он предоставляет один макет по умолчанию и значение интервала по умолчанию, которые являются постоянными во всех виджетах.
Метод set_spacing () класса gtk.Box можно использовать для изменения расстояния по умолчанию между кнопками в блоке кнопок.
Расположение кнопок по умолчанию можно изменить с помощью метода set_default () . Возможные значения макета кнопки —
-
gtk.BUTTONBOX_SPREAD
-
gtk.BUTTONBOX_EDGE
-
gtk.BUTTONBOX_START
-
gtk.BUTTONBOX_END.
gtk.BUTTONBOX_SPREAD
gtk.BUTTONBOX_EDGE
gtk.BUTTONBOX_START
gtk.BUTTONBOX_END.
пример
В следующем примере объект VBox внутри окна верхнего уровня внутри содержит один объект VButtonBox и один объект HButtonBox, каждая из которых содержит две кнопки, расположенные вертикально и горизонтально соответственно.
Соблюдайте код —
import gtk class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Button Box demo") self.set_size_request(200,100) self.set_position(gtk.WIN_POS_CENTER) vb = gtk.VBox() box1 = gtk.VButtonBox() btn1 = gtk.Button(stock = gtk.STOCK_OK) btn2 = gtk.Button(stock = gtk.STOCK_CANCEL) box1.pack_start(btn1, True, True, 0) box1.pack_start(btn2, True, True, 0) box1.set_border_width(5) vb.add(box1) box2 = gtk.HButtonBox() btn3 = gtk.Button(stock = gtk.STOCK_OK) btn4 = gtk.Button(stock = gtk.STOCK_CANCEL) ent = gtk.Entry() box2.pack_start(btn3, True, True, 0) box2.pack_start(btn4, True, True, 0) box1.set_border_width(5) vb.add(box2) self.add(vb) self.show_all() PyApp() gtk.main()
Приведенный выше код генерирует следующий вывод —