Рубрики
Без рубрики

Использование виджета шкалы Tkinter

Привет всем! В этой части нашего урока по Tkinter мы рассмотрим еще один виджет – виджет масштаба Tkinter.

Автор оригинала: 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()

Выход

Пример масштаба 1

Хорошо! Это работает, как и ожидалось, и у нас есть виджет шкалы 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

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

Вывод

В этом уроке мы рассмотрели использование виджета шкалы Tkinter.

В следующих статьях мы рассмотрим еще несколько виджетов, так что следите за обновлениями!