python tkinter grid параметры

Python tkinter grid параметры

expand : если равно True, то виджет заполняет все пространство контейнера.

fill : определяет, будет ли виджет растягиваться, чтобы заполнить свободное пространство вокруг. Этот параметр может принимать следующие значения: NONE (по умолчанию, элемент не растягивается), X (элемент растягивается только по горизонтали), Y (элемент растягивается только по вертикали) и BOTH (элемент растягивается по вертикали и горизонтали).

side : выравнивает виджет по одной из сторон контейнера. Может принимать значения: TOP (по умолчанию, выравнивается по верхней стороне контейнера), BOTTOM (выравнивание по нижней стороне), LEFT (выравнивание по левой стороне), RIGHT (выравнивание по правой стороне).

Например, растянем кнопку на всю форм, используя параметры expand и fill:

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Используем параметр side :

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Комбинируя параметры side и fill, можно растянуть элемент по вертикали:

Метод place

Метод place() позволяет более точно настроить параметры позиционирования. Он принимает следующие параметры:

height и width : устанавливают соответственно высоту и ширину элемента в пикселях

relheight и relwidth : также задают соответственно высоту и ширину элемента, но в качестве значения используется число float в промежутке между 0.0 и 1.0, которое указывает на долю от высоты и ширины родительского контейнера

x и y : устанавливают смещение элемента по горизонтали и вертикали в пикселях соответственно относительно верхнего левого угла контейнера

relx и rely : также задают смещение элемента по горизонтали и вертикали, но в качестве значения используется число float в промежутке между 0.0 и 1.0, которое указывает на долю от высоты и ширины родительского контейнера

bordermode : задает формат границы элемента. Может принимать значение INSIDE (по умолчанию) и OUTSIDE

Например, разместим кнопку с шириной 130 пикселей и высотой 30 пикселей в центре окна:

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Или разместим три кнопки:

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Метод grid

Метод grid применяет другой подход к позиционированию элементов, нежели метод place, позволяя поместить элемент в определенную ячейку условной сетки или грида.

Метод grid применяет следующие параметры:

column : номер столбца, отсчет начинается с нуля

row : номер строки, отсчет начинается с нуля

columnspan : сколько столбцов должен занимать элемент

rowspan : сколько строк должен занимать элемент

ipadx и ipady : отступы по горизонтали и вертикали соответственно от границ элемента до его текста

padx и pady : отступы по горизонтали и вертикали соответственно от границ ячейки грида до границ элемента

sticky : выравнивание элемента в ячейке, если ячейка больше элемента. Может принимать значения n, e, s, w, ne, nw, se, sw, которые указывают соответствующее направление выравнивания

Источник

Графика в Python: Tkinter и Canvas

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

В статье рассматривается создание графических интерфейсов с помощью библиотеки Tkinter. Отдельное внимание уделяется виджету Canvas, предназначенному для рисования (draw) в Python.

Tkinter представляет собой графическую кроссплатформенную библиотеку на основе средств Tk. Это свободное ПО, которое включено в стандартную библиотеку языка программирования Python.

В состав Tkinter входит много компонентов. Один из них — Canvas, он же «Холст». Canvas применяется в Python для вывода следующих графических примитивов:

Но прежде чем продолжить, следует вкратце рассказать о существующих методах позиционирования элементов.

Позиционирование элементов в Python. Python grid

Для позиционирования элементов, во время работы с Tkinter используют разные методы:

Метод grid позволяет поместить элемент в конкретную ячейку условной сетки либо грида. Используется ряд параметров:

Для начала работы с Tkinter библиотеку сначала надо импортировать:

from tkinter import *

Ниже определен грид из девяти кнопок:

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Canvas: рисуем линии в Python

Виджет Canvas предоставляет функциональность, с помощью которой разработчик может нарисовать (drawn) графику в Tkinter. Для чего может понадобиться эта графика? К примеру, для получения статистики, создания своих виджетов, отрисовки небольших игр.

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

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

В результате весь код отработает следующим образом:

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Canvas: рисуем цветные прямоугольники в Python

Цвет — это объект, отображающий комбинацию трех цветов (красного, зеленого, синего — RGB). С помощью кода ниже были нарисованы прямоугольники. Также они были закрашены различными цветами.

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Так создается виджет Canvas:

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

— координатное положение верхней левой ограничительной точки (левого верхнего угла);

— координатное положение нижней правой ограничительной точки (нижнего правого угла).

Если есть необходимость, то посредством параметра outline у прямоугольника задается цвет контура. Окрасить всю внутреннюю область можно с помощью параметра fill :

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

А вот и итоговый результат:

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Рисуем сложные формы

Можно без проблем нарисовать круг, овал и прочие фигуры, включая криволинейные. Именно для этой цели и предназначен код ниже:

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Благодаря этому коду будут созданы такие геометрические фигуры, как круг, прямоугольник, овал, дуга, многоугольник. Также следует обратить внимание на контур — он окрасится в красный цвет, а заливка будет зеленой. Ширина контура (width) — 2 px.

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Аналогично создается и овал — меняются лишь первые 4 параметра.

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Остается посмотреть результат:

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Также с помощью Canvas можно без проблем вставлять изображения и рисовать текст (text), используя шрифты разной высоты (height) и стиля (style).

Другие GUI-библиотеки для Python

Кроме библиотеки Tkinter и виджета Canvas, существует и масса других графических библиотек, применяемых для создания рисунков (drawings). Среди них:

При рисовании обычно применяется каскадный способ: компоненты добавляются поверх друг друга.

Drawing with Turtle

Отдельного упоминания заслуживает модуль Turtle (по аналогии с черепашками Turtles). Этот модуль позволяет создавать на Питоне рисунки и другие графические объекты, включая игры в специальном окне. Для того чтобы приступить к рисованию (drawing), надо сначала присоединить его (импортировать). Делается это одним из 3-х способов:

2) from turtle import open as t ;

Drawing with Pygame

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

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

Pygame сравнивают с Tkinter, который с помощью своих функций и классов предоставляет языку программирования Python доступ к графической библиотеке Tk.

Если нужны дополнительные детали по теме, смотрите источники ниже:

Источник

Мы покажем, как компоновать виджеты методом pack (также его опции). Несколько примеров помогут продемонстрировать правильную конфигурацию.

Запустите программу, у вас появится такое окно,

Как видно, buttonWest щёлкает на левой стороне окна, а buttonEast щёлкает на правой стороне. Вы можете попробовать масштабировать размер окна внизу, но вы увидите, что они все равно будут цепляться за боковые стороны окна и относительное положение не изменится.

Попробуйте ответить сами или проверьте, запустив следующие коды.

Tkinter pack для добавления внутренней и внешней подкладки виджета

Tkinter pack Макет Заполнение в направлении х, у

Следующая реализация кода может автоматически заполнить размер виджета той же шириной или той же высотой, что и окно, а при увеличении окна размер элемента управления может автоматически изменяться вместе с размером окна.

butonX.pack(fill=’x’) означает, что buttonX заполнит ширину всего окна. Аналогично, fill=’y’ заполнит высоту всего окна, а тем временем fill=’both’ заполнит и ширину, и высоту.

expand=0 отключает поле списка для автоматического показа всех элементов.

Tkinter grid Метод раскладки

grid часто используется в диалоговых окнах, и вы можете разместить виджеты, основываясь на координатах положения сетки. Метод компоновки grid может иметь стабильные относительные позиции всех виджетов.

Tkinter grid column и row опции

Опция Tkinter grid sticky

sticky определяет, как виджет прилипает к ячейке, когда виджет меньше ячейки.

sticky

Значение

W

держаться левее

E

держаться правой руки

N

держаться сверху

S

держаться дна

Опции Tkinter columnspan и rowspan

Метод Tkinter place Метод

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

Tkinter place Абсолютная позиция

Tkinter place относительное положение

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

Метод place также имеет опцию относительной позиции, то есть,

Где relx и rely находятся в диапазоне 0.0

Например, relx=0.5, rely=0.5 означает, что виджет размещается в 50% от ширины окна и 50% от высоты окна.

Источник

Метод grid

Табличный способ размещения предпочтителен из-за его гибкости и удобства, когда дело доходит до разработки относительно сложных интерфейсов. Grid позволяет избежать использования множества фреймов, что неизбежно в случае упаковщика Pack.

При размещении виджетов методом grid родительский контейнер (обычно это окно) условно разделяется на ячейки подобно таблице. Адрес каждой ячейки состоит из номера строки и номера столбца. Нумерация начинается с нуля. Ячейки можно объединять как по вертикали, так и по горизонтали.

На рисунке пунктир обозначает объединение ячеек. Общая ячейка в таком случае обозначается адресом первой.

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

Пусть надо запрограммировать такой GUI:

Представим данный интерфейс в виде таблицы и пронумеруем ячейки, в которых будут располагаться виджеты:

Выполнив приведенный выше программный код, получим:

Кроме этого есть атрибут sticky (липкий), который принимает значения направлений сторон света (N, S, W, E, NW, NE, SW, SE). Если, например, указать NW, то виджет прибьет к верхнему левому углу ячейки. Виджеты можно растягивать на весь объем ячейки ( sticky=N+S+W+E ) или только по одной из осей ( N+S или W+E ). Эффект от «липучки» заметен, только если виджет меньше ячейки.

С помощью методов grid_remove и grid_forget можно сделать виджет невидимым. Отличие между этими методами лишь в том, что grid_remove запоминает прежнее положение виджета. Поэтому для его отображения в прежней ячейки достаточно применить grid без аргументов. После grid_forget потребуется заново конфигурировать положение виджета.

В данной программе голубая метка после удаления будет появляться в том же месте, где была до этого, несмотря на то, что в функции rem к ней применяется метод grid без настроек. В отличие от нее зеленая метка, если ей не указать место размещения после удаления, появлялась бы под кнопками.

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

Практическая работа

Курс с примерами решений практических работ: android-приложение, pdf-версия.

Источник

Разметка виджетов в Tkinter — pack, grid и place

python tkinter grid параметры. Смотреть фото python tkinter grid параметры. Смотреть картинку python tkinter grid параметры. Картинка про python tkinter grid параметры. Фото python tkinter grid параметры

В данном уроке по изучению Tkinter мы познакомимся с менеджерами разметки. Когда мы создаем графический интерфейс нашего приложения, мы определяем, какие виджеты будем использовать, и как они будут расположены в приложении. Для того, чтобы организовать виджеты в приложении, используются специальные невидимые объекты – менеджеры разметки.

Содержание курса

Содержание статьи

Существует два вида виджетов:

Контейнеры объединяют виджеты для формирования разметки. У Tkinter есть три встроенных менеджера разметки: pack, grid и place.

Метод place() в Tkinter — Абсолютное позиционирование

В большинстве случаев разработчикам необходимо использовать менеджеры разметки. Есть несколько ситуаций, в которых следует использовать именно абсолютное позиционирование. В рамках абсолютного позиционирования разработчик определяет позицию и размер каждого виджета в пикселях. Во время изменения размеров окна размер и позиция виджетов не меняются.

Изображения из примера:

Сохраните их в папке рядом с файлом absolute.py код для которого будет ниже.

Таким образом, на разных платформах приложения выглядят по-разному. То, что выглядит нормально на Linux, может отображаться некорректно на Mac OS. Изменение шрифтов в нашем приложении также может испортить разметку. Если мы переведем наше приложение на другой язык, мы должны доработать и разметку.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *