Читаем Создание настольных Python приложений с графическим интерфейсом пользователя полностью

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

Приложение Tkinter большую часть времени работает внутри цикла событий, вход в который осуществляется с помощью метода mainloop.

Этот метод ждет событий.

И события могут быть нажатием клавиш или операциями мыши пользователя.

И Tkinter предоставляет механизм, позволяющий программисту иметь дело с событиями.

Для каждого виджета можно привязать функции Python к событию с помощью метода widget.bind (событие, обработчик)

Если определенное событие происходит в виджете, функция «обработчик» вызывается с объектом события.

В этом примере используется событие , когда пользователь нажимает клавишу 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 и его функцию askopenfilename.

А для выбора цвета Tkinter предоставляет всплывающее меню.

Для этого мы должны импортировать модуль colorchooser и использовать метод askColor.

Перейти на страницу:

Похожие книги