You are currently viewing Виджет Progressbar в Tkinter | Python

Виджет Progressbar в Tkinter | Python

Цель этого виджета — убедить пользователя в том, что что-то происходит. Он может работать в одном из двух режимов:

В determinate mode (определенный режим), виджет показывает индикатор, который перемещается от начала до конца под управлением программы.
В indeterminate mode (неопределенный режим), виджет анимирован, чтобы пользователь поверил, что что-то происходит. В этом режиме индикатор отскакивает назад и вперед между концами виджета.

Синтаксис:

widget_object = Progressbar(parent, **options) 

Код № 1 

В определять режим

# importing tkinter module
from tkinter import * from tkinter.ttk import *

# creating tkinter window
root = Tk()

# Progress bar widget
progress = Progressbar(root, orient = HORIZONTAL,
			length = 100, mode = 'determinate')

# Function responsible for the updation
# of the progress bar value
def bar():
	import time
	progress['value'] = 20
	root.update_idletasks()
	time.sleep(1)

	progress['value'] = 40
	root.update_idletasks()
	time.sleep(1)

	progress['value'] = 50
	root.update_idletasks()
	time.sleep(1)

	progress['value'] = 60
	root.update_idletasks()
	time.sleep(1)

	progress['value'] = 80
	root.update_idletasks()
	time.sleep(1)
	progress['value'] = 100

progress.pack(pady = 10)

# This button will initialize
# the progress bar
Button(root, text = 'Start', command = bar).pack(pady = 10)

# infinite loop
mainloop()

Выход:

Код № 2: 

В неопределенный режим

# importing tkinter module
from tkinter import * from tkinter.ttk import *

# creating tkinter window
root = Tk()

# Progress bar widget
progress = Progressbar(root, orient = HORIZONTAL,
			length = 100, mode = 'indeterminate')

# Function responsible for the updation
# of the progress bar value
def bar():
	import time
	progress['value'] = 20
	root.update_idletasks()
	time.sleep(0.5)

	progress['value'] = 40
	root.update_idletasks()
	time.sleep(0.5)

	progress['value'] = 50
	root.update_idletasks()
	time.sleep(0.5)

	progress['value'] = 60
	root.update_idletasks()
	time.sleep(0.5)

	progress['value'] = 80
	root.update_idletasks()
	time.sleep(0.5)

	progress['value'] = 100
	root.update_idletasks()
	time.sleep(0.5)

	progress['value'] = 80
	root.update_idletasks()
	time.sleep(0.5)

	progress['value'] = 60
	root.update_idletasks()
	time.sleep(0.5)

	progress['value'] = 50
	root.update_idletasks()
	time.sleep(0.5)

	progress['value'] = 40
	root.update_idletasks()
	time.sleep(0.5)

	progress['value'] = 20
	root.update_idletasks()
	time.sleep(0.5)
	progress['value'] = 0
	

progress.pack(pady = 10)

# This button will initialize
# the progress bar
Button(root, text = 'Start', command = bar).pack(pady = 10)

# infinite loop
mainloop()

Выход: