Tkinter - что

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

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

  1. checkbutton = Checkbutton(window, text='Choose')

Естественно, нам нужно поставить состояние этого виджета «По-умолчанию», а так же получать данные о статусе — поставлена галочка или нет 🙂 — для этого используется следующий код:

  1. from tkinter import * #Подключили библиотеку
  2.  
  3. def exit():
  4.     quit()
  5.  
  6. window = Tk()
  7. window.geometry('250x250') #Где первый параметр - ширина, а второй - высота.
  8. window.resizable(0, 0)  #Используем этот код, если нам нужно отключить возможность изменения размеров окна пользователем
  9. window.title('Tkinter что это с примерами на русском') #Обозначили заголовок окна
  10.  
  11. check_status = BooleanVar()
  12. check_status.set(False) #Установили значение по-умолчанию
  13. checkbutton = Checkbutton(window, text='Выбор', var=check_status)
  14. checkbutton.grid(column=0, row=0)
  15.  
  16. status_check_status = int(check_status.get()) #Создали переменную, которая получает состояние чекбокса
  17. print(status_check_status) #Вывели переменную в консоль
  18.  
  19. button_exit = Button(window, text = 'Exit', command = exit)
  20. button_exit.grid(column = 0, row = 1)
  21.  
  22. window.mainloop()

Теперь разберемся с добавлением радио-кнопок. Для этого используется следующий код:

  1. radio_button = Radiobutton(window,text='First', value=1)

И раз уж радиокнопка у нас есть — то нужно как-то понять, что делать, если кнопка нажата. Для этого имеется следующая конструкция:

  1. from tkinter import *
  2. from tkinter.ttk import *
  3.  
  4. window = Tk()
  5. window.title('Tkinter что это с примерами на русском :)')
  6.  
  7. selected = IntVar()
  8. rad1 = Radiobutton(window,text='1', value=1, variable=selected)
  9. rad2 = Radiobutton(window,text='2', value=2, variable=selected)
  10. rad3 = Radiobutton(window,text='3', value=3, variable=selected)
  11.  
  12. def clicked():
  13.    print(selected.get())
  14.  
  15. btn = Button(window, text='Нажми меня', command=clicked)
  16. rad1.grid(column=0, row=0)
  17. rad2.grid(column=1, row=0)
  18. rad3.grid(column=2, row=0)
  19. btn.grid(column=3, row=0)
  20.  
  21. window.mainloop()

Как видно — при выборе той или иной радиокнопки и нажатия на кнопку в консоли выводится номер выбранной радиокнопки 🙂

Теперь добавим в наш код поле для ввода большого полотна текста 🙂 Выглядит код для этого следующим образом (Важно: не забываем подключить библиотеку, которая отвечает за большие текстовые блоки:
from tkinter import scrolledtext):

  1. from tkinter import scrolledtext
  2. scroll_text = scrolledtext.ScrolledText(window,width=40,height=10) #первый параметр - ширина в символах, второй - количество строк
  3. scroll_text.grid(column=0,row=0)

Так же мы можем установить текст «По-умолчанию» в нашем поле. Для этого используем:

  1. scroll_text.insert(INSERT,'Текст для примера')

А в случае необходимости очистить это поле. Для этого нужно использовать код:

  1. scroll_text.delete(1.0,END)

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

  1. from tkinter import *
  2. from tkinter.ttk import *
  3. from tkinter import scrolledtext
  4.  
  5. def clear():
  6.     scroll_text.delete('1.0', END)
  7.  
  8. window = Tk()
  9. window.title('Tkinter что это с примерами на русском :)')
  10.  
  11. button = Button(window, text='Очистить поле', command=clear)
  12. button.grid(column = 0, row = 1)
  13.  
  14. scroll_text = scrolledtext.ScrolledText(window,width=40,height=3)
  15. scroll_text.insert(INSERT,'Текст для примера')
  16. scroll_text.grid(column=0,row=0)
  17.  
  18. window.mainloop()

Как видно из кода выше — мы создаем многострочное окно, добавляем туда текст «По умолчанию», а потом делаем так, что бы после нажатия кнопки «Очистить поле» окно очищалось. Все просто 🙂

Идем далее… разберемся, как с помощью библиотеки Tkinter создавать месседжбокс. Вообще просто 🙂

  1. from tkinter import messagebox
  2. messagebox.showinfo('Заголовок окна','Текст в окне')

А вот код в полном виде:

  1. from tkinter import *
  2. from tkinter.ttk import *
  3. from tkinter import scrolledtext
  4. from tkinter import messagebox
  5.  
  6. def clear():
  7.     scroll_text.delete('1.0', END)
  8.  
  9. def message():
  10.     messagebox.showinfo('Заголовок окна', 'Текст в окне')
  11.  
  12. window = Tk()
  13. window.title('Tkinter что это с примерами на русском :)')
  14.  
  15. button = Button(window, text='Очистить поле', command=clear)
  16. button.grid(column = 0, row = 1)
  17.  
  18. button_message = Button(window, text='Вывести уведомление', command=message)
  19. button_message.grid(column = 0, row = 2)
  20.  
  21. scroll_text = scrolledtext.ScrolledText(window,width=40,height=3)
  22. scroll_text.insert(INSERT,'Текст для примера')
  23. scroll_text.grid(column=0,row=0)
  24.  
  25. window.mainloop()

На сегодня по поводу вопроса, который звучит как: Tkinter — что это — достаточно 🙂
Спасибо за внимание!
Как всегда в случае вопросов — пишите на почту, или в Telegram.