Привет всем! Продолжаем знакомство с библиотекой Tkinter — что это с примерами, на русском языке 🙂 Это будет уже четвертая часть (предыдущие части доступны по ссылке).
В третьей части я рассматривал методы создания всплывающего информационного окна. Следующие методы позволят создать окно предупреждения и окно ошибки:
-
messagebox.showwarning('Заголовок окна', 'Предупреждение') # shows warning message
-
messagebox.showerror('Заголовок окна', 'Полный капец, короче') # shows error message
Визуально это будет выглядеть следующим образом:
Окно предупреждения:
Ок, а если нам нужно организовать вывод диалога, который предусматривает некую реакцию в стиле «Cancel» — «Ok» — «Retry», да еще и вывести какой-то уведомительный значок? Для этих целей имеется следующий код:
-
messagebox.askquestion('Заголовок окна', 'Вопрос: Да - нет')
-
messagebox.askyesno('Заголовок окна', 'Вопрос: Да - нет')
-
messagebox.askyesnocancel('Заголовок окна', 'Вопрос: Да - нет - отмена')
-
messagebox.askokcancel('Заголовок окна', 'Вопрос - Ок - отмена')
-
messagebox.askretrycancel('Заголовок окна', 'Восклицательный знак: Повтор - отмена')
Интересно, что особенностью этого варианта кода является тот факт, что он возвращает значение нажатой клавиши. Например, если вы нажмете «Ок», или «Да», или «Повторить» — будет возвращено значение «True», а если нажмете «Нет» или «Отмена» — будет возвращено значение «False». Единственная функция, которая возвращает три значения — askyesnocancel — она возвращает значения «True», «False», «None».
А сейчас разберемся, как создавать окна со спинбоксами (это такие окошки, где можно тыкая кнопочки «Вверх-вниз» выбирать необходимое количество. Код для этого выглядит следующим образом:
-
spin = Spinbox(window, from_=0, to=10, width=2)
Код выше — это код, который создает спинбокс, работающий в промежутке от нуля до 10, а размер спинбокса — 2 символа.
Код ниже — спинбокс, имеющий размер в 2 символа, и дающий возможность выбрать только значения из 2-4-6:
-
spin2 = Spinbox(window, values=(2, 4, 6), width=5)
На случай, если нам нужно задать значение «По-умолчанию» в спинбокс — используем следующую конструкцию:
-
variable =IntVar()
-
variable.set(50)
-
spin = Spinbox(window, from_=0, to=100, width=2, textvariable=variable)
И да — конечно же мы можем получить значение, которое было выбрано в спинбоксе. Для этого используем:
spin3.get() #spin3 - название нашего спинбокса
Дошли до самого, на мой взгляд, интересного — создание прогрессбара 🙂 Создается он так же просто:
-
from tkinter.ttk import Progressbar
-
bar = Progressbar(window, length=100)
Если нам нужно задать значение «По-умолчанию» — используем:
bar['value'] = 50
Конечно же — мы можем указать цветовое оформление нашего прогрессбара. Для этого не забываем подключить библиотеку ttk, и использовать следующие методы:
-
from tkinter import ttk
-
-
style = ttk.Style()
-
style.theme_use('default')
-
style.configure('green.Horizontal.TProgressbar', background='green')
-
bar = Progressbar(window, length=100, style='green.Horizontal.TProgressbar')
-
bar['value'] = 50
-
bar.grid(column = 0, row = 5)
На выходе мы получим нечто вроде:
На этом пока все 🙂 Пятая часть, в которой мы узнаем как создавать диалог для выбора файлов, меню и вкладки — совсем скоро. Следите за обновлениями!
И конечно же — в случае возникновения вопросов пишите на почту или в Telegram.