전체 소스코드
import time
import tkinter.ttk as ttk
from tkinter import *
root = Tk()
root.title("GUI")
root.geometry("300x150")
# 프로그래스바 만들기
#progressbar = ttk.Progressbar(root, maximum=100, mode="indeterminate")
progressbar = ttk.Progressbar(root, maximum=100, mode="determinate")
progressbar.start(10) #10s마다 움직임
progressbar.pack()
def btncmd():
progressbar.stop()
p_var2 = DoubleVar()
progressbar2 = ttk.Progressbar(root, maximum=100, length=150, variable=p_var2)
progressbar2.pack()
btn = Button(root, text="중지", command=btncmd)
btn.pack()
# 1 ~ 100의 값을 가진 프로그래스바 만들기
def btncmd2():
for i in range(1, 101):
time.sleep(0.01) #0.01초 대기
p_var2.set(i) #progessbar의 값 설정
progressbar2.update() #ui 업데이트
print(p_var2.get())
btn2 = Button(root, text="시작", command=btncmd2)
btn2.pack()
root.mainloop()
Progessbar(진행바)
#progressbar = ttk.Progressbar(root, maximum=100, mode="indeterminate")
progressbar = ttk.Progressbar(root, maximum=100, mode="determinate")
progressbar.start(10) #10s마다 움직임
progressbar.pack()
def btncmd():
progressbar.stop()


왼쪽은 mode="indeterminate" 언제 끝날지 모르는 작업으로
시작점이 없이 초록색바가 왼쪽 오른쪽을 왔다갔다한다
오른쪽은 mode="determinate" 끝이 있는 작업으로
시작점이 있고 끝부분에 바가 닿았다가 다시 줄어든다
.start()로 프로그래스 바를 실행할 수 있다

중지 버튼을 누르면 바가 아예 사라진다
p_var2 = DoubleVar()
progressbar2 = ttk.Progressbar(root, maximum=100, length=150, variable=p_var2)
progressbar2.pack()
def btncmd2():
for i in range(1, 101):
time.sleep(0.01) #0.01초 대기
p_var2.set(i) #progessbar의 값 설정
progressbar2.update() #ui 업데이트
print(p_var2.get())
btn2 = Button(root, text="시작", command=btncmd2)
btn2.pack()
time.sleep(0.01)
p_var2.set(i)
반복문 안에 위의 두 식만 넣는다면 아래 사진처럼
바가 늘어나는 과정은 보이지 않고
0에서 100으로 한 번에 채워진다


동작을 할 때 매번 GUI에 반영을 해줘야하는데 한 번에 반영하기 때문이다
그래서 ui를 업데이트해주는 progressbar2.update() 문장이 필요하다


그러면 위처럼 진행하는 과정이 잘 보이고
1부터 100까지 터미널에 출력된다
'python > tkinter' 카테고리의 다른 글
[Python tkinter GUI] #11 MessageBox(메세지박스) (0) | 2022.12.16 |
---|---|
[Python tkinter GUI] #10 Menu(메뉴) (0) | 2022.12.16 |
[Python tkinter GUI] #8 Combobox(콤보박스) (0) | 2022.12.16 |
[Python tkinter GUI] #7 Radiobutton(라디오버튼) (0) | 2022.12.16 |
[Python tkinter GUI] #6 Checkbutton(체크버튼) (0) | 2022.12.16 |
댓글