Программирование gui на Python

Питон

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

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

Особенности создания окна приложения в Tkinter

Язык программирования Python открывает возможности для создания программ с графическим интерфейсом. В этом случае на помощь приходит Tkinter. Он выглядит в виде отдельно встроенного модуля, который имеет такие графические элементы, как текстовые поля, кнопки и прочие элементы.

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

Программирование gui на Python

Чтобы создать графическое окно, необходимо использовать специальный конструктор Тк (), который находится в составе модуля Tkinter. Окно, которое будет создаваться, автоматически будет присвоено переменной root. Управление всеми необходимыми атрибутами окна будет происходить именно через эту переменную. Для установления заголовка окна целесообразно применить метод title ().

Установка размера окна реализуется посредством использования метода geometry (). Для этого целесообразно задать строку в таком формате «Ширина х Высота». В том случае, если на этапе создания окна не происходит процесс вызывания метода geometry (), это указывает на то, что окно занимает то свободное пространство, которое нужно для того, чтобы разместить внутреннее содержимое.

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

В том случае, если запустить скрипт, можно увидеть такое окно:

Программирование gui на Python

Что же касается позиции окна, то первоначально по умолчанию оно будет находиться в левом верхнем углу рабочего экрана. В том случае, если есть необходимость в изменении положения, следует в метод geometry () внести следующие изменения:

Программирование gui на Python

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

Особенности работы с виджетами

Что же касается виджетов, которые есть в библиотеке Tkinter, то их выделяют достаточно большое количество. Например, можно рассмотреть такой виджет, как Button (Кнопка). Среди обязательных параметров, которые есть у класса Button, выделяют объект, которому он принадлежит. В данном случае это будет окно root.

Пример, по которому создается кнопка:

Программирование gui на Python

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

Программирование gui на Python

Для того, чтобы в окне программы появилась кнопка, нужно применить специальный метод pack (). Рассмотрим пример, по которому происходит процесс добавления в окно кнопки:

Программирование gui на Python

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

Например, можно создать функцию:

Программирование gui на Python

В качестве параметра event будет выступать какое-то событие. События, которые отвечают за выполнение при нажатии левой кнопки мыши, будут задаваться, как «Button-1». Это событие в последующем должно быть связано вместе с обработчиком. Для того, чтобы это реализовать, поможет метод bind.

Синтаксис будет выглядеть следующим образом:

Программирование gui на Python

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

Программирование gui на Python

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

Программирование gui на Python

Добавление виджета ScrolledText

В том случае, если есть необходимость в добавлении виджета ScrolledText, здесь нужно использовать целый класс ScrolledText:

Программирование gui на Python

Для того, чтобы автоматически не произошло заполнение всего окна, нужно в обязательном порядке указать для ScrolledText такие параметры, как высота и ширина:

Программирование gui на Python

В результате выполнения программы появиться такое окно:

Программирование gui на Python

В том случае, если есть необходимость в настройке определенных свойств ScrolledText, нужно использовать специальный метод под названием insert:

Программирование gui на Python

Для того, чтобы выполнить полную очистку представленного виджета, стоит использовать метод delete:

Программирование gui на Python

Однострочное текстовое поле в Tkinter

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

В качестве однострочного текстового поля выступает Entry. Из текстового поля есть возможность забирать текст посредством применения метода get. Вставка текста непосредственно в само текстовое поле может быть реализовать посредством использования метода insert. Что же касается удаления текста из текстового поля, то здесь работает тот самый метод delete.

Рассмотренный ниже фрагмент кода:

Программирование gui на Python

приведет к тому, что после того, как пользователь будет нажимать на кнопку несколько раз подряд, будет добавляться новая фраза «Tkinter – GUI» в поле перед строкой, которая уже существует:

Программирование gui на Python

В том случае, если в insert вместо 0 поставить end, то добавление текста будет происходить непосредственно в конце. Вставка в любое место в середине строки будет осуществляться в том случае, если указать конкретное число-индекс знакоместа.

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

В том случае, если необходима полная очистка текстового поля, то нужно одновременно использовать два аргумента. Первым из них является 0, после чего нужно указать аргумент end.

Позиционирование в Tkinter

В том случае, если в языке программирования Пайтон есть необходимость осуществить для элементов их позиционирование в окне, для этого могут применяться различные способы. Если же рассматривать самый простой, то здесь стоит обратить внимание на вызов так называемого метода pack (). Представленный метод в процессе работы может принимать следующих значений:

  • expand – заполнение всего пространства контейнера будет осуществлено в том случае, если свойство будет равно True;
  • fill – отвечает за то, будет ли происходить процесс растягивания виджета для того, чтобы заполнить все находящееся вокруг пространство. Представленный параметр может иметь разные значения. Среди них стоит обратить внимание на следующие: NONE – элемент растягиваться не будет; х – растягивание произойдет по горизонтали; Y — растягивание произойдет по вертикали; BOTH – одновременное растягивание элемента, как по вертикали, так и по горизонтали;
  • side–предоставляет возможность осуществить процесс выравнивания виджета по одной из сторон. Для выравнивания по верхнему краю применяется команда TOP, для выравнивания по нижнему краю – команда BOTTOM, соответственно для выравнивая по правой и левой стороне команды RIGHT и LEFT.

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

Программирование gui на Python

Программирование gui на Python

Для использования параметра side:

Программирование gui на Python

Программирование gui на Python

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

Программирование gui на Python

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

Стоит обратить внимание на то, что в процессе использования метода place () нет надобности в одновременном применении метода pack () для того, чтобы придать элементу свойства видимости.

Оцените статью
Образовательный портал WELCOME4U.RU
Добавить комментарий

Adblock
detector