Создание окна приложения

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

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

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

from tkinter import *

root = Tk()
'''
any code
'''
root.mainloop()
1
2
3
4
5
6
7

Для создания графического окна применяется конструктор Tk(), который определен в модуле tkinter. Создаваемое окно присваивается переменной root, и через эту переменную мы можем управлять атрибутами окна. Вместо комментария '''any code''' добавляются все необходимые компоненты окна.

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

В результате при запуске скрипта мы увидим такое пустое окошко:

window_default

C помощью метода title() можно установить заголовок окна.

С помощью метода geometry() - размер окна. Для установки размера в метод geometry() передается строка в формате «Ширина x Высота». Если при создании окна приложения метод geometry() не вызывается, то окно занимает то пространство, которое необходимо для размещения внутреннего содержимого:

from tkinter import *

root = Tk()
root.title('My first window title')
root.geometry('350x200')
root.mainloop()
1
2
3
4
5
6

Результат выполнения:

window_title_geometry

Начальная позиция окна

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

from tkinter import *

root = Tk()
root.title("My second Python window")
root.geometry("400x300+300+250")
root.mainloop()
1
2
3
4
5
6

Теперь строка в методе geometry имеет следующий формат: «Ширина x Высота + координатаX + координатаY». То есть при запуске окно будет находиться на 300 пикселей вправо и на 250 пикселей вниз от верхнего левого угла экрана.

Упражнения

  1. Создайте 4 окна с заголовками окон: "Top", "Bottom", "Right", "Left". Разместить окна по сторонам рабочего стола:

    • вверх по центру,
    • низ по центру,
    • право по центру,
    • лево по центру.
  2. Создайте 4 окна с заголовками окон: "Top-right", "Top-left", "Bottom-right", "Bottom-left". Разместить 4 окна по углам рабочего стола.

  3. Создайте окно, появляющееся в центре экрана, с заголовком "Center".

  4. Текстовые и другие редакторы в заголовках программы указывают имя "активного файла - название программы".

    • Создайте окно с заголовком в виде f-строки, в котором указывается имя разработчика, название и версия программы;
    • Имя и версия программы хранятся в отдельных переменных;
    • Пример вывода заголовка: "Bob's programm - Empty v.01"
  5. Иконки окон не отображаются в системах MacOS, задача только для Windows: Найдите в интернете, как в tkinter сменить иконку, отображаемую в левом верхнем углу окна. И замените её, на любую другую иконку, которую можно скопировать из интернета или создать самому. Картинка для иконки обязательно должна иметь расширение .ico.