Создание настольных Python приложений с графическим интерфейсом пользователя - Тимур Машнин
Шрифт:
Интервал:
Закладка:
С кнопкой можно связать функцию Python.
Эта функция будет вызываться, если вы нажмете этот переключатель.
Таким образом, этот виджет реализует кнопку с множественным выбором, которая является способом предложить пользователю множество возможных вариантов выбора и позволяет пользователю выбрать только один из них.
Чтобы реализовать эту функциональность, каждая группа радиокнопок должна быть связана с одной и той же переменной, и каждая из кнопок должна представлять только одно значение.
Радиокнопки названы в честь физических кнопок, используемых на старых радиостанциях для выбора диапазонов волн или предустановленных радиостанций.
Если была нажата такая кнопка, другие кнопки выскакивали, оставляя нажатую кнопку единственной нажатой кнопкой.
И каждая группа виджетов радиокнопок должна быть связана с одной и той же переменной.
Нажатие кнопки изменяет значение этой переменной на заранее определенное значение.
Здесь у нас есть список «языков», который содержит тексты кнопок и соответствующие значения.
И мы можем использовать цикл for для создания всех переключателей.
Список кортежей содержит как тексты, так и значения, которые будут присвоены переменной v, если будет выбран соответствующий язык.
Checkbutton или флажок представляет собой виджет, который позволяет пользователю делать множественный выбор из ряда различных опций.
Это отличается от радиокнопки, где пользователь может сделать только один выбор.
Обычно флажки отображаются на экране в виде квадратных полей, которые могут содержать галочки при выборе флажка.
Таким образом, флажок имеет два состояния: включен или выключен.
И флажок может содержать текст, но только одним шрифтом или изображение.
Параметр variable является управляющей переменной, которая отслеживает текущее состояние флажка.
Обычно эта переменная является переменной IntVar, и 0 означает очищено, а 1 означает установлено.
Виджет ввода — это виджет Tkinter, используемый для получения ввода данных от пользователя приложения.
Этот виджет позволяет пользователю вводить одну строку текста.
Если пользователь вводит строку, длина которой превышает доступное пространство для отображения, содержимое будет прокручено.
Если вы хотите ввести несколько строк текста, вы должны использовать виджет Text.
И виджет ввода также ограничен одним шрифтом.
Как и с другими виджетами, можно дополнительно влиять на отображение виджета с помощью параметров.
Здесь, в этом примере, мы предоставляем графический интерфейс, который способен оценивать любое математическое выражение и печатать результат.
Приложение Tkinter большую часть времени работает внутри цикла событий, вход в который осуществляется с помощью метода mainloop.
Этот метод ждет событий.
И события могут быть нажатием клавиш или операциями мыши пользователя.
И Tkinter предоставляет механизм, позволяющий программисту иметь дело с событиями.
Для каждого виджета можно привязать функции Python к событию с помощью метода widget.bind (событие, обработчик)
Если определенное событие происходит в виджете, функция «обработчик» вызывается с объектом события.
В этом примере используется событие <Return>, когда пользователь нажимает клавишу Enter.
И с этим событием связывается метод evaluate, который вычисляет математическое выражение и печатает результат.
Виджет Canvas предоставляет возможность рисования таких графических объектов, как линии, круги, изображения и даже другие виджеты.
С помощью Canvas можно рисовать графики, создавать графические редакторы и реализовывать различные виды пользовательских виджетов.
Метод create_line используется для рисования прямой линии.
Координаты здесь представлены четырьмя целыми числами: x1, y1, x2, y2.
Это означает, что прямая идет от точки (x1, y1) к точке (x2, y2).
После этих координат следует разделенный запятыми список дополнительных параметров, который может быть пустым.
Здесь мы можем установить, например, цвет линии.
Для создания прямоугольников есть метод create_rectangle.
Координаты снова определяются двумя точками, но на этот раз первая — это верхняя левая точка и далее нижняя правая точка прямоугольника.
Метод create_text можно применить к объекту холста, чтобы написать на нем текст.
Также есть методы create_arc, create_image, create_oval, create_polygon.
Также можно организовать интерактивное рисование на холсте.
К сожалению, нарисовать одну точку на холсте невозможно.
Но мы можем решить эту проблему, используя небольшой овал.
Здесь мы связываем методом bind с холстом событие мыши и метод pain, который будет рисовать на холсте.
Слайдер или ползунок — это объект Tkinter, с помощью которого пользователь может установить значение, перемещая индикатор.
И слайдеры могут быть расположены вертикально или горизонтально.
Ползунок создается с помощью метода Scale.
В качестве параметров можно установить минимальное и максимальное значения, а также разрешение.
И мы также можем определить, хотим ли мы расположить слайдер вертикально или горизонтально.
Виджет Scale — альтернатива виджету Entry, если пользователь должен ввести число из конечного диапазона, то есть предустановленное числовое значение.
И мы можем увеличить длину слайдера с помощью параметра length, который определяет размер x, если масштаб горизонтальный, и размер y, если масштаб вертикальный.
Методом get мы можем получить значение ползунка.
Текстовый виджет используется для ввода многострочного текста.
Текстовые виджеты также могут использоваться как простые текстовые редакторы или даже веб-браузеры.
Кроме того, текстовые виджеты могут использоваться для отображения ссылок, изображений и HTML, даже с использованием стилей CSS.
Здесь мы создаем текстовый виджет с помощью метода Text.
И мы устанавливаем высоту, то есть количество строк, и ширину, то есть количество символов.
И мы можем применить метод insert, чтобы добавить текст в виджет.
Также мы добавляем полосу прокрутки в наше окно.
С этой целью Tkinter предоставляет метод Scrollbar.
И мы вызываем его с корневым объектом в качестве единственного параметра.
И мы связываем полосу прокрутки с текстовым виджетом с помощью параметра yscrollcommand.
Tkinter предоставляет набор диалогов, которые можно использовать для отображения окон сообщений, предупреждений или ошибок или виджетов для выбора файлов и цветов.
Существуют также простые диалоги, в которых пользователю предлагается ввести строку, целые числа или числа с плавающей запятой.
Диалоги предоставляются подмодулем messagebox в tkinter и его функциями.
Функция askokcancel спрашивает, следует ли продолжить операцию и возвращает истину или ложь.
Функция askquestion задает вопрос.
Функция askretrycancel спрашивает, нужно ли повторить операцию и возвращает истину, если ответ положительный.
Функция askyesno задает вопрос и возвращает истину, если ответ положительный.
Функция askyesnocancel также задает вопрос и возвращает true, если ответ положительный, или None, если он отменен.
Функция showerror показывает сообщение об ошибке.
Функция showinfo показывает информационное сообщение.
Функция showwarning показывает предупреждающее сообщение.
Для чтения из файла или записи в файл Tkinter предоставляет модуль tk
f
ile
d
ialog и