Tkinter – выборка значения шкалы каждые X секунд?Python

Программы на Python
Anonymous
Tkinter – выборка значения шкалы каждые X секунд?

Сообщение Anonymous »

Итак, у меня есть базовый графический интерфейс tkinter с ползунком шкалы.
Я хочу использовать таймер для выборки значения шкалы каждую 1 секунду (должен имитировать автомобильный ускоритель)
Как добавить таймер в свой код?

Код: Выделить всё

import tkinter as tk
import ttkbootstrap as ttk

SCALE_VALUE_MIN = -20
SCALE_VALUE_MAX = 100
SCALE_VALUE_DEFAULT = 0

MAX_FORWARD_ACC = 3 # m/s^2
MAX_BACKWARD_ACC = MAX_FORWARD_ACC / 3

MAX_FORWARD_SPEED = 220 / 3.6 # 220 km/h to m/s
MAX_BACKWARD_SPEED = 20 / 3.6 # 20 km/h to m/s

def scaleupdate(value):
output_str.set(value)

def scalerelease(value):
scale.set(SCALE_VALUE_DEFAULT)

window = ttk.Window(themename= 'journal')
window.title('Demo')
window.geometry('300x150')

# frame
frame1 = ttk.Frame(master = window)

# min_label
min_label = ttk.Label(master = frame1, text = str(SCALE_VALUE_MIN))
min_label.pack(side = 'left', padx = 10)

# scale
scalevar = tk.DoubleVar()
scale = ttk.Scale(master = frame1, variable = scalevar, from_= SCALE_VALUE_MIN, to = SCALE_VALUE_MAX, orient = 'horizontal', command = scaleupdate)
scale.set(SCALE_VALUE_DEFAULT)
scale.bind('', scalerelease)
scale.pack(side = 'left', padx = 10)

# max_label
max_label = ttk.Label(master = frame1, text = str(SCALE_VALUE_MAX))
max_label.pack(side = 'left', padx = 10)

frame1.pack()

# label
output_str = tk.StringVar()
label = ttk.Label(master = window, font = 'Calibri 16', text = 'Scale value', textvariable = output_str)
label.pack(pady = 5)

# run
window.mainloop()
Я пробовал измерить время (используя timeit.timer_default() ) и вычислить скорость по разнице во времени, но это сработало только после изменения значения шкалы.
Мне нужен независимый внешний таймер, который выбирает значение ползунка и соответствующим образом обновляет скорость.
Я читал о threading.timer, но не понимаю, как интегрировать его с основным циклом.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/786 ... -x-seconds

Вернуться в «Python»