Учебники

PyGTK — Box Class

Класс gtk.Box — это абстрактный класс, определяющий функциональные возможности контейнера, в котором виджеты размещаются в прямоугольной области. Виджеты gtk.HBox и gtk.VBox являются производными от него.

Дочерние виджеты в gtk.Hbox располагаются горизонтально в одной строке. С другой стороны, дочерние виджеты gtk.VBox расположены вертикально в том же столбце.

Класс gtk.Box использует следующий конструктор —

gtk.Box(homogenous = True, spacing = 0)

По умолчанию для однородного свойства установлено значение True. В результате все дочерние виджеты имеют одинаковое распределение.

gtk.Box использует механизм упаковки для размещения в нем дочерних виджетов со ссылкой на определенную позицию, либо со ссылкой на начало или конец. Метод pack_start () размещает виджеты от начала до конца. Наоборот, метод pack_end () помещает виджеты от начала до конца. Кроме того, вы можете использовать метод add (), который похож на pack_start ().

Следующие методы доступны как для gtk.HBox, так и для gtk.VBox —

  • gtk_box_pack_start ()

  • gtk_box_pack_end ()

gtk_box_pack_start ()

gtk_box_pack_end ()

gtk_box_pack_start ()

Этот метод добавляет дочерний элемент в блок, упакованный со ссылкой на начало блока —

pack_start(child, expand = True, fill = True, padding = 0)

Ниже приведены параметры —

  • child — это объект виджета, который будет добавлен в поле

  • раскрыть — устанавливается в значение «Истина», если дочернему элементу нужно предоставить дополнительное пространство в поле. Дополнительное пространство делится между всеми дочерними виджетами .

  • fill — Если True, дополнительное место будет выделено дочернему элементу. В противном случае этот параметр используется в качестве отступа.

  • padding — это расстояние в пикселях между виджетами в окне.

child — это объект виджета, который будет добавлен в поле

раскрыть — устанавливается в значение «Истина», если дочернему элементу нужно предоставить дополнительное пространство в поле. Дополнительное пространство делится между всеми дочерними виджетами .

fill — Если True, дополнительное место будет выделено дочернему элементу. В противном случае этот параметр используется в качестве отступа.

padding — это расстояние в пикселях между виджетами в окне.

gtk_box_pack_end ()

Это добавляет ребенка в коробку, упакованную со ссылкой на конец коробки.

pack_end (child, expand = True, fill = True, padding = 0)

Ниже приведены параметры —

  • child — это объект виджета, который будет добавлен

  • раскрыть — устанавливается в значение «Истина», если дочернему элементу нужно предоставить дополнительное пространство в поле. Это дополнительное пространство разделено между всеми дочерними виджетами.

  • fill — Если True, дополнительное пространство будет выделено дочернему элементу, в противном случае используется как заполнение.

  • padding — это расстояние в пикселях между виджетами в окне.

child — это объект виджета, который будет добавлен

раскрыть — устанавливается в значение «Истина», если дочернему элементу нужно предоставить дополнительное пространство в поле. Это дополнительное пространство разделено между всеми дочерними виджетами.

fill — Если True, дополнительное пространство будет выделено дочернему элементу, в противном случае используется как заполнение.

padding — это расстояние в пикселях между виджетами в окне.

set_spacing (интервал) — это функция, которая устанавливает количество пикселей для размещения между дочерними элементами блока.

Метод add (widget) унаследован от класса gtk.Container. Добавляет виджет в контейнер. Этот метод можно использовать вместо метода pack_start ().

пример

В приведенном ниже примере окно верхнего уровня содержит вертикальное поле (поле объекта gtk.VBox). Он, в свою очередь, имеет объект VBox vb и объект HBox hb. В верхнем поле метка, виджет ввода и кнопка расположены вертикально. В нижнем поле другой набор метки, запись и кнопка расположены вертикально.

Соблюдайте следующий код —

import gtk
class PyApp(gtk.Window):
   def __init__(self):
      super(PyApp, self).__init__()
         self.set_title("Box demo")
		
      box = gtk.VBox()
      vb = gtk.VBox()
      lbl = gtk.Label("Enter name")
		
      vb.pack_start(lbl, expand = True, fill = True, padding = 10)
      text = gtk.Entry()
		
      vb.pack_start(text, expand = True, fill = True, padding = 10)
      btn = gtk.Button(stock = gtk.STOCK_OK)
		
      vb.pack_start(btn, expand = True, fill = True, padding = 10)
      hb = gtk.HBox()
		
      lbl1 = gtk.Label("Enter marks")
      hb.pack_start(lbl1, expand = True, fill = True, padding = 5)
      text1 = gtk.Entry()
		
      hb.pack_start(text1, expand = True, fill = True, padding = 5)
      btn1 = gtk.Button(stock = gtk.STOCK_SAVE)
		
      hb.pack_start(btn1, expand = True, fill = True, padding = 5)
      box.add(vb)
      box.add(hb)
      self.add(box)
      self.show_all()
PyApp()
gtk.main()

Приведенный выше код выдаст следующий вывод: