Создание окна по центру и кнопка выхода в Tkinter

Создание окна в Tkinter

В этой части обучения Tkinter мы познакомим Вас с инструментом Tkinter и создадим первые программы. Целью этого руководства является ознакомление с базой инструментария Tkinter. Я использовал несколько иконок из набора Tango от Gnome project.

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

  1. Создание окна по центру и кнопка выхода в Tkinter
  2. Разметка виджетов в Tkinter — pack, grid и place
  3. Виджеты Checkbutton, Label, Scale и Listbox в Tkinter
  4. Меню, подменю и панель инструментов в Tkinter
  5. Диалоговые окна в Tkinter
  6. Рисуем линии, прямоугольники, круг и текст в Tkinter
  7. Пишем игру змейка на Tkinter

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

Tkinter библиотека для создания графических интерфейсов

Tkinter – это графическая библиотека на основе Tk, которая входит в стандартную библиотеку Python. Tk является библиотекой базовых элементов графического интерфейса для языка Tcl. Tkinter реализован как оболочка Python для Tcl интерпретатора, встроенного в интерпретатор Python. Существует и несколько других популярных графических инструментов для Python. Наиболее популярными являются wxPython, PyQt5 и PyGTK.

Язык программирования Python

Python – это высокоуровневый, динамичный, объектно-ориентированный язык программирования. Он ориентирован на повышение производительности программиста и читаемости кода. Разработчиком кода является Гвидо ван Россум. Впервые язык увидел свет в 1991 году. При создании Python, автор вдохновлялся такими языками программирования как ABC, Haskell, Java, Lisp, Icon и Perl. Python является высокоуровневым, кроссплатформенным, но в то же время минималистичным языком. Одним из его основных преимуществ является отсутствие скобок и точек с запятой. Вместо этого Python использует отступы. Сегодня существует две основные ветви языка: Python 2.7 и Python 3.x.

Стоит отметить, что Python 3 нарушает обратную совместимость с предыдущими версиями языка. Его разработали для того, чтобы исправить ряд недостатков конструкции уже существующего языка, упростить и очистить его от ненужных деталей. Последней версией Python 2.x является 2.7.17, а Python 3.x – 3.8.5. Данный учебник написан на Python 2.x, равно как и большая часть кода. Мы обновили учебник под Python 3.8.

Для перехода программного обеспечения и самих разработчиков на Python 3.x потребуется какое-то время. Уже перешли все на Python 3. Сегодня Python поддерживается большим количеством добровольцев со всего мира. Напомню, что язык имеет открытый исходный код.

Python – это идеальный язык для тех людей, которые хотят научиться программировать.

Язык программирования Python поддерживает несколько стилей программирования. Он не принуждает разработчика придерживаться определенной парадигмы. Python поддерживает объектно-ориентированное и процедурное программирование. Существует и ограниченная поддержка функционального программирования.

Создание обычного окна в Tkinter

В нашем первом примере мы покажем стандартное окно на экране.

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

Здесь мы импортируем классы Tk и frame. Первый класс Tk используется для создания корневого окна. Второй класс Frame играет роль контейнера для других виджетов.

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Класс Example унаследовал виджет контейнера Frame. Используя конструкторский метод __init__() мы можем обращаться к конструктору нашего родительского класса. Параметр background определяет цвет виджета Frame.

Мы сохраняем ссылку на родительский виджет. В нашем случае родительским виджетом выступает корневое окно Tk.

Мы делегируем создание пользовательского интерфейса методу initUI().

Мы задаем заголовок окну при помощи метода title().

Метод pack() является одним из трех менеджеров геометрии в Tkinter. Именно он отвечает за горизонтальное и вертикальное размещение виджетов. На примере мы используем виджет Frame, доступ к которому получен атрибутом к корневому окну Tk. Он расширяется в обоих направлениях. Иными словами, он занимает все клиентское пространство корневого окна.

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

Метод geometry() задает размер окна и его расположение на экране. Первые два параметра определяют ширину и высоту окна. Последние два отвечают за «x» и «y» координаты на экране.

Здесь мы инициализируем класс приложения.

И, наконец-то, мы подходим к mainloop (Основной Цикл). Обработка событий начинается именно с этой точки. MainLoop получает информацию о событиях от системы окна и отправляет их к виджетам приложения. Окно закрывается, когда мы нажимаем на кнопку закрытия или используем метод quit().

Создание окна в Tkinter

Фигура: Обычное окно

Расположение окна по центру экрана в Tkinter

Этот скрипт позволяет установить окно по центру экрана.

Нам нужно узнать размер окна и размер экрана, чтобы центрировать окно.

Это значения ширины и высоты окна нашего приложения.

С помощью этого кода мы определяем ширину и высоту экрана.

Теперь мы рассчитываем необходимые координаты «x» и «y».

В конце мы используем метод geometry(), чтобы центрировать окно на экране.

Создаем кнопку выхода из приложения в Tkinter

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

Мы добавляем кнопку в нашем окне. Нажатие на кнопку завершит работу приложения.

Tkinter поддерживает стилизацию виджетов. Стилизованные виджеты можно импортировать из tkinter.ttk модуля.

Мы применяем тему к нашим виджетам. Среди поддерживаемых тем: calm, default, alt и classic.

Мы создаем образец виджета Button (кнопки). Контейнер Frame является родительским для этой кнопки. Мы обеспечиваем ярлык для кнопки и команду. Команда определяет использующийся метод при нажатии на кнопку. В нашем случае используется метод quit(), который завершает работу приложения.

Мы используем менеджер геометрии place() для того, чтобы установить координаты 50х50 пикселей для кнопки от верхнего левого угла окна.

Tkinter кнопка выхода из приложения

Это был раздел ознакомления с инструментом Tkinter.