На этом шаге мы рассмотрим особенности размещения компонентов в окне.
Если интерфейс окна прост, мы можем вообще не использовать контейнеры, а поместить компоненты непосредственно в окно. Окно библиотеки 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 не рекомендуют его применять.
На следующем шаге мы рассмотрим адаптивный интерфейс и его реализацию.