2.80M
Категория: ПрограммированиеПрограммирование

Библиотека Tkinter

1.

Tkinter
https://pythonru.com/uroki/obuche
nie-python-gui-uroki-po-tkinter

2.

• Библиотека Tkinter установлена в Python в
качестве стандартного модуля, поэтому
нам не нужно устанавливать что-либо для
его использования.

3.

Создание своего первого
графического интерфейса

4.

from tkinter import *
window = Tk()
window.title("Добро пожаловать в приложение PythonRu")
window.mainloop()
Последняя строка вызывает функцию mainloop.
Эта функция вызывает бесконечный цикл окна,
поэтому окно будет ждать любого
взаимодействия с пользователем, пока не будет
закрыто.

5.

6.

Настройка размеров окна
приложения

7.

Мы можем установить размер окна по
умолчанию, используя
функцию geometry следующим образом:
window.geometry('400x250')
В приведенной выше строке устанавливается
окно шириной до 400 пикселей и высотой до
250 пикселей.

8.

9.

10.

Создание виджета Label

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()

13.

14.

Вы можете задать шрифт текста и размер. Также
можно изменить стиль шрифта. Для этого
передайте параметр font таким образом:
lbl = Label(window, text="Привет", font=("Arial Bold", 50),
bg=‘#ff0000’, bd=20,fg=‘#00ff00’)
font(‘Comic Sans MS’,24,’bold’)

15.

16.

Обратите внимание, что параметр font может
быть передан любому виджету, для того,
чтобы поменять его шрифт, он применяется
не только к Label.

17.

Добавление виджета Button

18.

Начнем с добавления кнопки в окно. Кнопка
создается и добавляется в окно так же, как и
метка:
btn = Button(window, text="Не нажимать!")
btn.grid(column=1, row=0)

19.

20.

Обратите внимание, что мы помещаем
кнопку во второй столбец окна, что равно 1.
Если вы забудете и поместите кнопку в том
же столбце, который равен 0, он покажет
только кнопку.

21.

Изменение цвета текста и фона у
Button

22.

Вы можете поменять цвет текста кнопки или
любого другого виджета, используя
свойство fg.
Кроме того, вы можете поменять цвет фона
любого виджета, используя свойство bg.
btn = Button(window, text="Не нажимать!",
bg="black", fg="red“, width=15, height=5)

23.

24.

Теперь, если вы попытаетесь щелкнуть по
кнопке, ничего не произойдет, потому что
событие нажатия кнопки еще не написано.

25.

Кнопка Click

26.

Для начала, мы запишем функцию, которую
нужно выполнить при нажатии кнопки:
def clicked():
lbl.configure(text="Я же просил...")

27.

Затем мы подключим ее с помощью кнопки,
указав следующую ​функцию:
btn = Button(window, text="Не нажимать!",
command=clicked)
Обратите внимание: мы пишем clicked, а
не clicked()с круглыми скобками. Теперь
полный код будет выглядеть так:

28.

29.

• Такие свойства
как bg, fg, activebackground и activeforegrou
nd определяют соответственно цвет фона и
текста, цвет фона и текста во время
нажатия мыши над кнопкой.

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 следующим
образом:

36.

txt = Entry(window, width=10)
Затем вы можете добавить его в окно,
используя функцию grid.
Наше окно будет выглядеть так:

37.

38.

Методы Entry
e1=Entry(width=20)
e1.insert( позиция, текст) – вставить с позиции
e1.delete(начало, конец) – удалить
e1.get(начало, конец) – прочитать

39.

вы можете получить текст ввода, используя
функцию get. Мы можем записать код для
выбранной функции таким образом:
def clicked():
res = "Привет {}".format(txt.get())
lbl.configure(text=res)

40.

41.

Каждый раз, когда мы запускаем код, нам
нужно нажать на виджет ввода, чтобы
настроить фокус на ввод текста, но как насчет
автоматической настройки фокуса?

42.

Установка фокуса виджета ввода

43.

Здесь все очень просто, ведь все, что нам
нужно сделать, — это вызвать функцию focus:
txt.focus()
Когда вы запустите свой код, вы заметите, что
виджет ввода в фокусе, который дает
возможность сразу написать текст.
Отключить виджет ввода
Чтобы отключить виджет ввода, отключите
свойство состояния:
txt = Entry(window,width=10, state='disabled')

44.

45.

46.

47.

Три способа конфигурирования
свойств виджетов
• Изменять конфигурацию виджета можно в
любой момент. Это изменение прорисуется
на экране по возвращении в цикл
обработки событий
1. В момент создания виджета
btn = Button(window, text="Не нажимать!",
bg="black", fg="red")

48.

2. устанавливать (конфигурировать) с
помощью методов config() (или configure())

49.

50.

3. с помощью методов, подобных
методам работы со словарями.
English     Русский Правила