Tkinter Progressbar Изменение скорости движения? - PullRequest
0 голосов
/ 22 февраля 2020

Можно изменить скорость движения индикатора прогресса Tkinter, если настроено в неопределенное состояние ?

Ответы [ 2 ]

1 голос
/ 22 февраля 2020

Вы можете использовать after(milliseconds, function_name) для периодического запуска собственной функции, которая будет использовать step() для изменения значения в индикаторе выполнения. Если вы используете другое значение milliseconds или другое значение в step(), оно будет двигаться с другой скоростью.

import tkinter as tk
from tkinter import ttk

def change():
    p.step(10)
    root.after(100, change) # run again after 100ms,

root = tk.Tk()

p = ttk.Progressbar(root, mode='indeterminate')
p.pack()

change() # run first time 

root.mainloop()
0 голосов
/ 04 марта 2020

Я нашел элегантный способ, на тот случай, если кто-то все еще ищет.

Метод .start () на ttk.Progressbar может принимать аргумент для указания интервала в миллисекундах.

.start ([интервал])

Начинайте перемещать индикатор каждые интервалы в миллисекундах; по умолчанию 50 мс. Каждый раз индикатор перемещается так, как если бы вы вызывали метод .step ().

Вот пример кода, чтобы попробовать его самостоятельно:

import tkinter as tk
from tkinter import ttk

root = tk.Tk()

p10 = ttk.Progressbar(root, mode='indeterminate', length=200)
p10.pack()
p10.start(10)

p100 = ttk.Progressbar(root, mode='indeterminate', length=200)
p100.pack()
p100.start(100)

p1000 = ttk.Progressbar(root, mode='indeterminate', length=200)
p1000.pack()
p1000.start(1000)

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...