Шаг 18.
Библиотека Tkinter. Размещение компонентов в контейнерах. Диспетчеры компоновки. Размещение компонентов непосредственно в окне

    На этом шаге мы рассмотрим особенности размещения компонентов в окне.

    Если интерфейс окна прост, мы можем вообще не использовать контейнеры, а поместить компоненты непосредственно в окно. Окно библиотеки Tkinter - это фактически компонент, поддерживающий функциональность диспетчеров компоновки, - собственно, мы сами убедились в этом, когда помещали в окно контейнер с компонентами.

    Код простого приложения, чье окно включает лишь поле ввода и кнопку, показан в примере ниже.

import tkinter
import tkinter.ttk
# Определяем класс окна - подкласс класса главного окна Тк
class Application(tkinter.Tk):
      def __init__(self):
            super().__init__()
            self.create_widgets()
            self.title("Размещение компонентов в окне")
            self.resizable(False, False)
            self.mainloop()

      def create_widgets(self):
            entValue = tkinter.ttk.Entry(self)
            entValue.pack(padx=4, pady=4)
            btnAction = tkinter.ttk.Button(self, text="Сделать все")
            btnAction.pack(padx=4, pady=4)


# Создаем экземпляр нашего класса Application
app = Application()
Архив с файлом можно взять здесь.

    Результат работы приложения изображен на рисунке 1.


Рис.1. Результат работы приложения

    Размещение компонентов прямо в окне, без использования контейнера, позволяет несколько сократить потребление системных ресурсов за счет того, что в этом случае не создается контейнер. Однако такой подход оправдан лишь в случае очень простых приложений, и, к тому же, сами разработчики библиотеки Tkinter не рекомендуют его применять.

    На следующем шаге мы рассмотрим адаптивный интерфейс и его реализацию.




Предыдущий шаг Содержание Следующий шаг