Библиотека 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 API предоставляет контейнерные классы для расширенного управления позиционированием виджетов внутри контейнера. Преимущества менеджеров по расположению над абсолютным позиционированием:
- Виджеты внутри окна автоматически изменяются.
- Обеспечивает равномерное отображение на устройствах отображения с различными разрешениями.
- Динамическое добавление или удаление виджета возможно без изменения дизайна.
gtk.Container действует как базовый класс для следующих классов: