Python/[파이썬] GUI 프로그래밍

[파이썬] GUI 프로그래밍 #10 프로그래스 바 (로딩 바) 만들기

예찬예찬 2021. 8. 23. 22:39
728x90
반응형

우리가 익히 알고있는 로딩 바는 프로그래스 바 라고 불린다.

 

이 프로그래스 바를 생성하는 기본 함수는 tkinter.ttk.Progressbar()이지만

콤보박스와 마찬가지로 아래처럼 간단히 사용할 수 있다.

 

import tkinter.ttk as ttk       # tkinter.ttk를 ttk로 줄여서 쓰겠다.

pb = ttk.Progressbar(root)       # root라는 창에 프로그래스 바 생성
pb.config(maximum=100)          # 최대값 설정
pb.config(length=150)            # 길이 설정
pb.pack()                       # 프로그래스 바 배치

위처럼만 코드를 짜면

프로그래스 바만 생성되고 아무것도 동작하지 않는 것을 볼 수 있다.

 

프로그래스 바를 동작시키는 구조는 아래 코드를 보면 알아보자

 

import tkinter.ttk as ttk   # tkinter.ttk를 ttk로 줄여서 쓰겠다.

def btnpress():              # 함수 btnpress() 정의
    for i in range(1, 101):
        time.sleep(0.01)
        p_g.set(i)
        pb.update()
        lb.config(text=p_g.get())
        
p_g = DoubleVar()               # double형으로 변수 저장
pb = ttk.Progressbar(root)       # root라는 창에 프로그래스 바 생성
pb.config(maximum=100)          # 최대값 설정
pb.config(length=150)            # 길이 설정
pb.config(variable=p_g)         # 값 변수 지정
pb.pack()                       # 프로그래스 바 배치
    
btn = Button(root)                # root라는 창에 버튼 생성
btn.config(text= "선택")          # 버튼 내용 
btn.config(width=10)              # 버튼 크기
btn.config(command=btnpress)      # 버튼 기능 (btnpree() 함수 호출)
btn.pack()                        # 버튼 배치

lb = Label(root)                 # root라는 창에 레이블 생성
lb.pack()                        # 레이블 배치

프로그래스 바의 값을 p_g에 저장을 하여 현제 로딩 퍼센트 계산

 

# 구름 IED를 사용하는 데 현제 위 코드가 구현이 안됨 

 

일단 프로그래스 바를 건너뛰고 다음으로 넘어가자

 

다음은 메뉴를 만들어 보도록 하자

728x90
반응형