PyGTK - Класс ButtonBox
Класс 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.
пример
В следующем примере объект 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()
Приведенный выше код генерирует следующий вывод -