Шаг 15.
Библиотека Tkinter. Размещение компонентов в контейнерах. Диспетчеры компоновки. Place: фиксированное расположение компонентов

    На этом шаге мы рассмотрим назначение, его параметры и пример использования.

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

    Нужно отметить, что этот диспетчер компоновки также требует обязательного указания размеров контейнера (что можно сделать, применив опции width и height). Если этого не сделать, размеры контейнера при выводе окажутся нулевыми.

    Вывод компонентов посредством диспетчера компоновки Place выполняется вызовом метода place([<Параметры>]), поддерживаемого всеми компонентами. Вот параметры, которые мы можем использовать в этом методе:

    Ниже приведен текст приложения, аналогичного приложению из предыдущего шага. Интерфейс этого приложения создан с применением диспетчера компоновки Place.

import tkinter
import tkinter.ttk
class Application(tkinter.ttk.Frame):
      def __init__(self, master=None):
            super().__init__(master)
            # Обязательно указываем ширину и высоту контейнера посредством
            # опций width и height соответственно
            self.configure(width=200, height=100)
            self.pack(padx=4, pady=4)
            self.create_widgets()
            self.master.title("Place")
            # Запрещаем изменять размеры окна
            self.master.resizable(False, False)

      def create_widgets(self):
            entValue = tkinter.ttk.Entry(self)
            entValue.place(x=4, y=4, width=-8, relwidth=1.0, height=22)

            btnShow = tkinter.ttk.Button(self, text="Вывести значение")
            btnShow.place(x=4, y=30, width=-8, relwidth=1.0, height=26)

            btnExit = tkinter.ttk.Button(self, text="Выход")
            btnExit.place(x=-64, relx=1.0, y=-30, rely=1.0, width=60, height=26)
           

root = tkinter.Tk()
app = Application(master=root)
root.mainloop()
Архив с файлом можно взять здесь.

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


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

    Нам могут также пригодиться следующие методы, поддерживаемые всеми компонентами:

    На следующем шаге мы рассмотрим диспетчер компоновки Grid.




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