Автор оригинала: Pankaj Kumar.
Привет всем! В этой части нашего урока Tkinter мы рассмотрим еще один виджет – виджет Tkinter Scale .
Это полезный виджет, если вы хотите отобразить масштаб любого вида в своем приложении.
Мы продемонстрируем, как вы можете использовать этот виджет, на простом примере. Давайте начнем!
Основные параметры виджета масштаба Tkinter
Мы можем использовать этот виджет, когда хотим, чтобы пользователь ввел числовое значение, ограниченное в определенных пределах.
Пользователь может перемещаться по шкале и выбирать соответствующее значение для ввода.
Чтобы использовать это, основные параметры имеют следующий формат:
scale_widget = tk.Scale(master, from_, to, orient)
Здесь master
– это главный объект Tkinter, который необходим для запуска любого графического приложения Tkinter.
Аргументы ключевого слова from_
и to
задают диапазон значений ползунка.
Наконец, ориентация orient
может быть либо “горизонтальной”, либо “вертикальной”.
Существует еще один необязательный аргумент, называемый resolution
, который определяет числовое разрешение значений.
Например, разрешение по умолчанию равно 1, что гарантирует округление всех значений до ближайшего целого числа. Вы можете попробовать настроить этот параметр в соответствии с вашими потребностями.
Чтобы использовать текущее значение виджета масштаба Tkinter, вы можете просто вызвать scale_widget.get()
. И чтобы установить виджет масштаба Tkinter, вы можете вызвать scale_widget.set(значение)
.
Давайте теперь рассмотрим пример, чтобы проиллюстрировать, что это значит.
Использование виджета Tkinter Scale – Создайте шкалу для нашего приложения
Давайте построим горизонтальную шкалу для нашего фиктивного приложения, которая состоит из целых значений от 0 до 100.
Это означает, что числовое разрешение равно 1.
import tkinter as tk from tkinter import messagebox # Create the master object master = tk.Tk() # Create a Scale Widget scale_widget = tk.Scale(master, orient="horizontal", resolution=1, from_=0, to=100) # And a label for it label_1 = tk.Label(master, text="Scale") # Use the grid geometry manager to put the widgets in the respective position label_1.grid(row=0, column=0) scale_widget.grid(row=0, column=1) # The application mainloop tk.mainloop()
Выход
Хорошо! Это работает, как и ожидалось, и у нас есть виджет шкалы Tkinter, отображающий значения от 0 до 100.
Теперь давайте добавим виджет кнопки в ваше приложение.
Когда мы нажмем на кнопку после установки значения масштаба, мы вызовем вызов функции для вывода предупреждения в окне сообщения, в котором будет отображаться выбранное нами значение.
Давайте добавим виджет кнопки в нашу программу.
button = tk.Button(master, text="Click", command=buttonCallback) button.grid(row=1, column=1)
Здесь аргумент command
указывает функцию, которая будет вызываться при нажатии этой кнопки.
Мы вызовем функцию button Callback
, которая обрабатывает это событие для нас.
def buttonCallback(): global scale_widget messagebox.showinfo("Message", "You have chosen value {}".format(scale_widget.get()))
Я использую scale_widget
в глобальной области, чтобы мы могли получить значение с помощью scale_widget.get()
. Это значение будет напечатано в окне сообщения.
В качестве дополнения я также увеличу размер кадра по умолчанию со стандартного “200×200” до большего окна “300×300”, используя master.geometry()
.
master.geometry("300x300")
Сейчас я опубликую полный код.
import tkinter as tk from tkinter import messagebox # Create the master object master = tk.Tk() master.geometry("300x300") # Create a Scale Widget scale_widget = tk.Scale(master, orient="horizontal", resolution=1, from_=0, to=100) # And a label for it label_1 = tk.Label(master, text="Scale") # Use the grid geometry manager to put the widgets in the respective position label_1.grid(row=0, column=0) scale_widget.grid(row=0, column=1) def buttonCallback(): global scale_widget messagebox.showinfo("Message", "You have chosen value {}".format(scale_widget.get())) button = tk.Button(master, text="Click", command=buttonCallback) button.grid(row=1, column=1) # The application mainloop tk.mainloop()
Теперь давайте посмотрим на результат.
Действительно, когда вы нажимаете на кнопку, после установки значения шкалы отображается правильное число!
Вывод
В этом уроке мы рассмотрели использование виджета шкалы Tkinter.
В следующих статьях мы рассмотрим еще несколько виджетов, так что следите за обновлениями!