Учебники

PyGTK — Контейнеры

Библиотека PyGTK предоставляет различные классы контейнеров для управления размещением виджетов внутри окна. Самый простой способ — использовать фиксированный контейнерный класс и поместить в него виджет, указав его абсолютные координаты, измеренные в пикселях.

Давайте теперь следуем за этими шагами —

Шаг 1 — Объявить объект фиксированного класса

fixed = gtk.Fixed()

Шаг 2 — Создайте виджет кнопки и добавьте его в фиксированный контейнер с помощью метода put (), которому нужны координаты x и y. Здесь кнопка будет размещена в (100 100) позиции.

btn = gtk.Button("Hello")
fixed.put(btn, 100,100)

Шаг 3 — Вы можете разместить несколько элементов управления в фиксированном контейнере. И добавьте его в окно верхнего уровня и вызовите метод show_all ()

self.add(fixed)
self.show_all()

Этот Абсолютный Макет, однако, не подходит по следующим причинам:

  • Положение виджета не изменяется даже при изменении размера окна.
  • Внешний вид может быть неодинаковым на разных устройствах отображения с разным разрешением.
  • Модификация в макете сложна, так как может потребоваться перепроектирование всей формы.

Ниже оригинальное окно

Привет, мир

Следующее окно изменено в размере

PyGTK Hello World

Положение кнопки здесь не меняется.

PyGTK API предоставляет контейнерные классы для расширенного управления позиционированием виджетов внутри контейнера. Преимущества менеджеров по расположению над абсолютным позиционированием:

  • Виджеты внутри окна автоматически изменяются.
  • Обеспечивает равномерное отображение на устройствах отображения с различными разрешениями.
  • Динамическое добавление или удаление виджета возможно без изменения дизайна.

gtk.Container действует как базовый класс для следующих классов: