Учебники

PyGTK — класс раскладок

Gtk.Layout — это контейнерный виджет, похожий на gtk.Fixed. Виджеты размещаются в виджете Layout путем указания абсолютных координат. Однако макет отличается от фиксированного виджета следующими способами:

  • Виджет макета может иметь бесконечную ширину и высоту. Максимальное значение ширины и высоты ограничено размером целого числа без знака.

  • Виджет gtk.DrawingArea может быть заключен в контейнер макета. DrawingArea — это холст, на котором можно рисовать 2D-элементы, такие как линия, прямоугольник и т. Д.

  • Чтобы поместить контейнер Layout в окно верхнего уровня меньших размеров, его можно связать с полосами прокрутки или поместить в ScrolledWindow.

Виджет макета может иметь бесконечную ширину и высоту. Максимальное значение ширины и высоты ограничено размером целого числа без знака.

Виджет gtk.DrawingArea может быть заключен в контейнер макета. DrawingArea — это холст, на котором можно рисовать 2D-элементы, такие как линия, прямоугольник и т. Д.

Чтобы поместить контейнер Layout в окно верхнего уровня меньших размеров, его можно связать с полосами прокрутки или поместить в ScrolledWindow.

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

gtk.Layout(hadjustment = None, vadjustment = None)

Свойства hadjustment и vadjustment представляют объект, имеющий регулируемое ограниченное значение.

В следующей таблице перечислены часто используемые методы макета —

положить (виджет, х, у) Размещает дочерний виджет в указанных координатах
set_size (w, h) Устанавливает размер контейнера макета на указанную ширину и высоту

Объект Layout испускает сигнал set_scroll_adjustment при изменении связанных с ним корректировок.

пример

В следующем примере метка размещается в центре контейнера макета, который, в свою очередь, должен размещаться в окне верхнего уровня меньшего размера. Следовательно, он сначала добавляется в ScrolledWindow, а затем ScrolledWindow добавляется в главное окно.

Соблюдайте код —

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("layout")
      self.set_size_request(300,200)
      self.set_position(gtk.WIN_POS_CENTER)
      sc = gtk.ScrolledWindow()
      lo = gtk.Layout()
      lo.set_size(400,400)
      button = gtk.Button("Press Me")
      lo.put(button, 125,200)
      sc.add(lo)
      self.add(sc)
      self.connect("destroy", gtk.main_quit)
      self.show_all()

PyApp()
gtk.main()

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