Слайд 2Библиотека Tkinter установлена в Python в качестве стандартного модуля, поэтому нам не нужно
устанавливать что-либо для его использования.
Слайд 3Создание своего первого графического интерфейса
Слайд 4from tkinter import *
window = Tk()
window.title("Добро пожаловать в приложение PythonRu")
window.mainloop()
Последняя
строка вызывает функцию mainloop. Эта функция вызывает бесконечный цикл окна, поэтому окно будет ждать любого взаимодействия с пользователем, пока не будет закрыто.
Слайд 6Настройка размеров окна приложения
Слайд 7Мы можем установить размер окна по умолчанию, используя функцию geometry следующим образом:
window.geometry('400x250')
В приведенной выше строке
устанавливается окно шириной до 400 пикселей и высотой до 250 пикселей.
Слайд 11Чтобы добавить текст в наш предыдущий пример, мы создадим переменную lbl , с помощью класса Label,
например:
lbl = Label(window, text="Привет")
Слайд 12Затем мы установим позицию в окне с помощью функции grid и укажем ее следующим образом:
lbl.grid(column=0,
row=0)
Полный код, будет выглядеть следующим образом:
from tkinter import *
window = Tk()
window.title("Добро пожаловать в приложение PythonRu")
lbl = Label(window, text="Привет") lbl.grid(column=0, row=0)
window.mainloop()
Слайд 14Вы можете задать шрифт текста и размер. Также можно изменить стиль шрифта. Для
этого передайте параметр font таким образом:
lbl = Label(window, text="Привет", font=("Arial Bold", 50), bg=‘#ff0000’, bd=20,fg=‘#00ff00’)
font(‘Comic Sans MS’,24,’bold’)
Слайд 16Обратите внимание, что параметр font может быть передан любому виджету, для того, чтобы поменять его
шрифт, он применяется не только к Label.
Слайд 18Начнем с добавления кнопки в окно. Кнопка создается и добавляется в окно так
же, как и метка:
btn = Button(window, text="Не нажимать!") btn.grid(column=1, row=0)
Слайд 20Обратите внимание, что мы помещаем кнопку во второй столбец окна, что равно 1.
Если вы забудете и поместите кнопку в том же столбце, который равен 0, он покажет только кнопку.
Слайд 21Изменение цвета текста и фона у Button
Слайд 22Вы можете поменять цвет текста кнопки или любого другого виджета, используя свойство fg.
Кроме того,
вы можете поменять цвет фона любого виджета, используя свойство bg.
btn = Button(window, text="Не нажимать!", bg="black", fg="red“, width=15, height=5)
Слайд 24Теперь, если вы попытаетесь щелкнуть по кнопке, ничего не произойдет, потому что событие
нажатия кнопки еще не написано.
Слайд 26Для начала, мы запишем функцию, которую нужно выполнить при нажатии кнопки:
def clicked():
lbl.configure(text="Я
же просил...")
Слайд 27Затем мы подключим ее с помощью кнопки, указав следующую функцию:
btn = Button(window, text="Не
нажимать!", command=clicked)
Обратите внимание: мы пишем clicked, а не clicked()с круглыми скобками. Теперь полный код будет выглядеть так:
Слайд 29Такие свойства как bg, fg, activebackground и activeforeground определяют соответственно цвет фона и текста, цвет фона и текста во
время нажатия мыши над кнопкой.
Слайд 30Здесь свойство command устанавливается с помощью метода config.
Однако можно было сделать и так: b1['command'] = change.
Слайд 31Для демонстрации запустить файл button изменение свойств при клике мыши
Слайд 32Практическая работа
Напишите программу, состоящую из семи кнопок, цвета которых соответствуют цветам радуги. При
нажатии на ту или иную кнопку в текстовое поле должен вставляться код цвета, а в метку – название цвета.
Коды цветов в шестнадцатеричной кодировке: #ff0000 – красный, #ff7d00 – оранжевый, #ffff00 – желтый, #00ff00 – зеленый, #007dff – голубой, #0000ff – синий, #7d00ff – фиолетовый.
Слайд 33Для выравнивания строки по центру в текстовом поле
используется свойство justify со значением CENTER.
Слайд 34Получение ввода с использованием класса Entry (текстовое поле Tkinter)
Слайд 35В предыдущих примерах GUI Python мы ознакомились со способами добавления простых виджетов, а
теперь попробуем получить пользовательский ввод, используя класс Tkinter Entry (текстовое поле Tkinter).
Вы можете создать текстовое поле с помощью класса Tkinter Entry следующим образом:
Слайд 36txt = Entry(window, width=10)
Затем вы можете добавить его в окно, используя функцию grid.
Наше
окно будет выглядеть так:
Слайд 38Методы Entry
e1=Entry(width=20)
e1.insert( позиция, текст) – вставить с позиции
e1.delete(начало, конец) – удалить
e1.get(начало, конец)
– прочитать
Слайд 39вы можете получить текст ввода, используя функцию get. Мы можем записать код для выбранной
функции таким образом:
def clicked():
res = "Привет {}".format(txt.get()) lbl.configure(text=res)
Слайд 41Каждый раз, когда мы запускаем код, нам нужно нажать на виджет ввода, чтобы
настроить фокус на ввод текста, но как насчет автоматической настройки фокуса?
Слайд 43Здесь все очень просто, ведь все, что нам нужно сделать, — это вызвать
функцию focus:
txt.focus()
Когда вы запустите свой код, вы заметите, что виджет ввода в фокусе, который дает возможность сразу написать текст.
Отключить виджет ввода
Чтобы отключить виджет ввода, отключите свойство состояния:
txt = Entry(window,width=10, state='disabled')
Слайд 47Три способа конфигурирования свойств виджетов
Изменять конфигурацию виджета можно в любой момент. Это изменение
прорисуется на экране по возвращении в цикл обработки событий
В момент создания виджета
btn = Button(window, text="Не нажимать!", bg="black", fg="red")
Слайд 482. устанавливать (конфигурировать) с помощью методов config() (или configure())