Tkinter - окно ошибки

Tkinter — что это с примерами на русском — часть 4

Привет всем! Продолжаем знакомство с библиотекой Tkinter — что это с примерами, на русском языке 🙂 Это будет уже четвертая часть (предыдущие части доступны по ссылке).

В третьей части я рассматривал методы создания всплывающего информационного окна. Следующие методы позволят создать окно предупреждения и окно ошибки:

  1. messagebox.showwarning('Заголовок окна', 'Предупреждение')  # shows warning message
  2. messagebox.showerror('Заголовок окна', 'Полный капец, короче')  # shows error message

Визуально это будет выглядеть следующим образом:
Окно предупреждения:
tkinter - окно предупреждения

Окно ошибки:
Tkinter - окно ошибки

Ок, а если нам нужно организовать вывод диалога, который предусматривает некую реакцию в стиле «Cancel» — «Ok» — «Retry», да еще и вывести какой-то уведомительный значок? Для этих целей имеется следующий код:

  1.     messagebox.askquestion('Заголовок окна', 'Вопрос: Да - нет')
  2.     messagebox.askyesno('Заголовок окна', 'Вопрос: Да - нет')
  3.     messagebox.askyesnocancel('Заголовок окна', 'Вопрос: Да - нет - отмена')
  4.     messagebox.askokcancel('Заголовок окна', 'Вопрос - Ок - отмена')
  5.     messagebox.askretrycancel('Заголовок окна', 'Восклицательный знак: Повтор - отмена')

Интересно, что особенностью этого варианта кода является тот факт, что он возвращает значение нажатой клавиши. Например, если вы нажмете «Ок», или «Да», или «Повторить» — будет возвращено значение «True», а если нажмете «Нет» или «Отмена» — будет возвращено значение «False». Единственная функция, которая возвращает три значения — askyesnocancel — она возвращает значения «True», «False», «None».

А сейчас разберемся, как создавать окна со спинбоксами (это такие окошки, где можно тыкая кнопочки «Вверх-вниз» выбирать необходимое количество. Код для этого выглядит следующим образом:

  1. spin = Spinbox(window, from_=0, to=10, width=2)

Код выше — это код, который создает спинбокс, работающий в промежутке от нуля до 10, а размер спинбокса — 2 символа.

Код ниже — спинбокс, имеющий размер в 2 символа, и дающий возможность выбрать только значения из 2-4-6:

  1. spin2 = Spinbox(window, values=(2, 4, 6), width=5)

На случай, если нам нужно задать значение «По-умолчанию» в спинбокс — используем следующую конструкцию:

  1. variable =IntVar()
  2. variable.set(50)
  3. spin = Spinbox(window, from_=0, to=100, width=2, textvariable=variable)

И да — конечно же мы можем получить значение, которое было выбрано в спинбоксе. Для этого используем:

spin3.get() #spin3 - название нашего спинбокса

Дошли до самого, на мой взгляд, интересного — создание прогрессбара 🙂 Создается он так же просто:

  1. from tkinter.ttk import Progressbar
  2. bar = Progressbar(window, length=100)

Если нам нужно задать значение «По-умолчанию» — используем:

bar['value'] = 50

Конечно же — мы можем указать цветовое оформление нашего прогрессбара. Для этого не забываем подключить библиотеку ttk, и использовать следующие методы:

  1. from tkinter import ttk
  2.  
  3. style = ttk.Style()
  4. style.theme_use('default')
  5. style.configure('green.Horizontal.TProgressbar', background='green')
  6. bar = Progressbar(window, length=100, style='green.Horizontal.TProgressbar')
  7. bar['value'] = 50
  8. bar.grid(column = 0, row = 5)

На выходе мы получим нечто вроде:
tkinter - создание прогрессбара

На этом пока все 🙂 Пятая часть, в которой мы узнаем как создавать диалог для выбора файлов, меню и вкладки — совсем скоро. Следите за обновлениями!

И конечно же — в случае возникновения вопросов пишите на почту или в Telegram.