Tkinter
Tkinter — это обертка Python библиотеки Tk GUI, которая поставляется вместе с Python.
Tkinter — это стандартная библиотека графического интерфейса для Python.
И Tkinter — это интерфейс Python для Tk.
Tkinter — это аббревиатура от «Tk interface».
Tk был разработан Джоном Остерхаутом как расширение графического интерфейса для языка сценариев Tcl.
И Tk был очень популярен в 1990-х годах, так как его легче было изучать и использовать, чем другие наборы инструментов.
Поэтому неудивительно, что многие программисты захотели использовать Tk независимо от Tcl.
Вот почему были разработаны обертки для множества других языков программирования, включая Perl, Ada, Python, Ruby и Common Lisp.
Создание приложения с графическим интерфейсом пользователя с использованием Tkinter — это несложная задача.
Все, что вам нужно сделать, это выполнить следующие шаги -
Импортировать модуль Tkinter.
Создать главное окно приложения GUI.
Добавить один или несколько виджетов в приложение с графическим интерфейсом.
Войти в основной цикл событий, чтобы обрабатывать каждое событие, инициированное пользователем.
Чтобы инициализировать tkinter, мы должны создать корневой виджет Tk, который представляет собой окно со строкой заголовка.
Корневой виджет должен быть создан перед любыми другими виджетами, и может быть только один корневой виджет.
Метод pack сообщает Tk, что размер окна подгоняется под заданный текст.
И окно не появится, пока мы не войдем в цикл событий Tkinter mainloop.
И наш скрипт останется в цикле событий, пока мы не закроем окно.
Теперь, как создать исполняемый файл для приложения Tkinter.
Для начала, установим инструмент pyinstaller.
Затем в окне терминала наберем команду pyinstaller — onefile — windowed main.py
В результате в папке dist будет создан один исполняемый файл.
Для создания графического интерфейса пользователя Tk предоставляет виджеты, окна верхнего уровня и три менеджера геометрии.
И мы начнем знакомство с Tk с одного из самых простых виджетов — с метки.
Метка — это виджет Tkinter, который используется для отображения текста или изображения.
И метка — это виджет, который пользователь просто просматривает, но не взаимодействует с ним.
Посмотрите на строку кода, которая содержит виджет Label.
Здесь первый параметр — это имя родительского окна, в нашем случае «root».
Так как наш виджет Label является потомком корневого виджета.
Параметр text или textvariable определяет текст, который будет отображаться.
Параметр relief задает внешний вид декоративной рамки вокруг метки. По умолчанию — FLAT.
Некоторые виджеты (например, виджеты ввода текста, переключатели и т. д.) могут быть напрямую связаны с переменными приложения с помощью специальных параметров: variable, textvariable, onvalue, offvalue, и value.
И это связывание работает в обоих направлениях: если переменная изменяется по какой-либо причине, виджет, к которому она подключена, будет обновлен, чтобы отразить новое значение.
Эти управляющие переменные Tkinter используются как обычные переменные Python для хранения определенных значений.
Но при этом невозможно передать обычную переменную виджету с помощью параметра variable или textvariable.
Единственные типы переменных, для которых это работает, — это переменные, которые являются подклассами класса Variable, определенного в модуле Tkinter.
Это переменные StringVar, IntVar, DoubleVar, BooleanVar.
Чтобы прочитать текущее значение такой переменной, можно вызвать метод get.
Значение такой переменной можно изменить с помощью метода set.
Виджет Message можно использовать для отображения коротких текстовых сообщений.
И виджет сообщения аналогичен по своим функциям виджету Label, но более гибок в отображении текста, например можно изменить шрифт, в то время как виджет метки может отображать текст только одним шрифтом. Хотя невозможно использовать для текста более одного шрифта.
Если вам нужно отображать текст несколькими шрифтами, можно использовать виджет Text.
Здесь мы используем метод config чтобы установить фон сообщения и шрифт сообщения.
Виджет Button используется для добавления кнопок в приложение Python.
Эти кнопки могут отображать текст или изображения, которые передают назначение кнопок.
И вы можете прикрепить функцию или метод к кнопке, который будет вызываться автоматически при нажатии кнопки.
Здесь мы создаем фрейм как родительский виджет для двух кнопок.
Первая кнопка с красной надписью QUIT, при нажатии на которую окно закрывается — это встроенная команда quit, прикрепленная к кнопке.
Ко второй кнопке прикреплен метод write_slogan, который печатает в вывод текст.
Радиокнопка представляет собой элемент графического пользовательского интерфейса Tkinter, который позволяет пользователю выбрать одну опцию из предопределенного набора опций.
Радиокнопки могут содержать текст или изображения.
И кнопка может отображать текст только одним шрифтом.
С кнопкой можно связать функцию Python.
Эта функция будет вызываться, если вы нажмете этот переключатель.
Таким образом, этот виджет реализует кнопку с множественным выбором, которая является способом предложить пользователю множество возможных вариантов выбора и позволяет пользователю выбрать только один из них.
Чтобы реализовать эту функциональность, каждая группа радиокнопок должна быть связана с одной и той же переменной, и каждая из кнопок должна представлять только одно значение.
Радиокнопки названы в честь физических кнопок, используемых на старых радиостанциях для выбора диапазонов волн или предустановленных радиостанций.
Если была нажата такая кнопка, другие кнопки выскакивали, оставляя нажатую кнопку единственной нажатой кнопкой.
И каждая группа виджетов радиокнопок должна быть связана с одной и той же переменной.
Нажатие кнопки изменяет значение этой переменной на заранее определенное значение.
Здесь у нас есть список «языков», который содержит тексты кнопок и соответствующие значения.
И мы можем использовать цикл for для создания всех переключателей.
Список кортежей содержит как тексты, так и значения, которые будут присвоены переменной v, если будет выбран соответствующий язык.
Checkbutton или флажок представляет собой виджет, который позволяет пользователю делать множественный выбор из ряда различных опций.
Это отличается от радиокнопки, где пользователь может сделать только один выбор.
Обычно флажки отображаются на экране в виде квадратных полей, которые могут содержать галочки при выборе флажка.
Таким образом, флажок имеет два состояния: включен или выключен.
И флажок может содержать текст, но только одним шрифтом или изображение.