Учебники

PyGTK — Класс выравнивания

Этот виджет оказывается полезным в управлении выравниванием и размером его дочерних виджетов. Он имеет четыре свойства: xalign, yalign, xscale и yscale. Свойства масштаба определяют, сколько свободного места будет использоваться дочерними виджетами. Свойства выравнивания используются для размещения дочернего виджета в доступной области.

Все четыре свойства принимают значение с плавающей точкой от 0 до 1,0. Если для свойства xscale и yscale установлено значение 0, это означает, что виджет не поглощает свободного пространства, а если установлено значение 1, виджет поглощает максимальное свободное пространство по горизонтали или вертикали соответственно.

Свойство xalign и yalign, если установлено в 0, означает, что не будет свободного места слева или над виджетом. Если установлено значение 1, слева или над виджетом будет максимально свободное пространство.

Класс gtk.alignment имеет следующий конструктор —

gtk.alignment(xalign = 0.0, yalign = 0.0, xscale = 0.0, yscale = 0.0)

Куда,

  • xalign — доля свободного пространства по горизонтали слева от дочернего виджета.

  • yalign — доля свободного пространства по вертикали над дочерним виджетом.

  • xscale — это доля горизонтального свободного пространства, которое поглощает дочерний виджет.

  • yscale — это доля вертикального свободного пространства, которое поглощает дочерний виджет.

xalign — доля свободного пространства по горизонтали слева от дочернего виджета.

yalign — доля свободного пространства по вертикали над дочерним виджетом.

xscale — это доля горизонтального свободного пространства, которое поглощает дочерний виджет.

yscale — это доля вертикального свободного пространства, которое поглощает дочерний виджет.

пример

Следующий код демонстрирует использование виджета gtk.alignment. Vbox в верхнем окне имеет верхний Vbox и нижний Hbox. В верхнем вертикальном поле метка и виджет Entry расположены таким образом, чтобы слева оставалось 50% свободного пространства, а более 25% из них занято назначением свойств 0,5 xalign и 0,25 yalign.

В нижнем HBox все доступное свободное пространство находится слева. Это достигается назначением 1 для свойства xalign. Следовательно, две кнопки в горизонтальном поле отображаются выровненными по правому краю.

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Alignment demo")
      self.set_size_request(400,200)
      self.set_position(gtk.WIN_POS_CENTER)
		
      vbox = gtk.VBox(False, 5)
      vb = gtk.VBox()
      hbox = gtk.HBox(True, 3)
      valign = gtk.Alignment(0.5,0.25, 0, 0)
		
      lbl = gtk.Label("Name of student")
      vb.pack_start(lbl, True, True, 10)
      text = gtk.Entry()
		
      vb.pack_start(text, True, True, 10)
      valign.add(vb)
      vbox.pack_start(valign)
		
      ok = gtk.Button("OK")
      ok.set_size_request(70, 30)
		
      close = gtk.Button("Close")
      hbox.add(ok)
      hbox.add(close)
		
      halign = gtk.Alignment(1, 0, 0, 0)
      halign.add(hbox)
		
      vbox.pack_start(halign, False, False, 3)
		
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
PyApp()
gtk.main()

Приведенный выше код производит следующий вывод —