본문 바로가기
python_GUI

Python GUI - tkinter 공부

by zho 2021. 8. 27.

○ 프로그레스 바 만들기

p_var2 = DoubleVar()
progressbar2 = ttk.Progressbar(root, maximum = 100, length = 150, variable = p_var2)
-> length는 프로그레스 바의 길이를 나타냄. 숫자가 커질수록 길어짐

progressbar2.pack()

def btncmd2():
    for i in range(1, 60):  # 0 ~ 60% 1씩 채워지는 프로그래스 바
        time.sleep(1)   #1초 대기
    
        p_var2.set(i)
        progressbar2.update()   #for문이 1씩 증가할 때마다 프로그레스 바가 증가하는 것을 시각적으로 확인 가능. 즉 UI 업데이트

        print(p_var2.get()) #1 ~ 100까지 진행되는 과정을 출력해서 확인하고자 할 때 사용.

btn = Button(root, text"전송", command = btncmd2)
btn.pack()
        



○ 메시지 박스 위젯 만들기

import tkinter.messagebox as msgbox
from tkinter import *

def info():
    msgbox.showinfo("알림", "사용자 추가 완료")
def okcancel():
    msgbox.askokcancel("확인 / 취소", "사용자를 삭제하시겠습니까?")
 
Button(root, command = info, text="알림").pack()
Button(root, command = okcancel, text="확인 / 취소").pack()

 




○ 메시지 박스에 응답하기
밑 실행 결과에서 사용자의 선택 예, 아니오, 취소에 따라 응답을 하고자 한다면, response 변수를 설정 후 값을 출력해 주면 된다.

def yesnocancel():
    msgbox.askyesnocancel(title = None, message = "해당 내용이 저장되었습니다. 저장 후 다시 시작하시겠습니까?")
Button(root, command = yesnocancel, text = "예 / 아니오 / 취소").pack()

if response == 1:
    print("네")
elif response == 0:
    print("아니오")
else:
    print("취소")

 




○ 스크롤 바 위젯 만들기

frame = Frame(root) # 스크롤바와 그 대상이 되는 위젯을 하나의 프레임으로 묶어 놓으면 편하다.
frame.pack()

scrollbar = Scrollbar(frame)
scrollbar.pack(side = "right", fill = "y")  #side = right: 오른쪽에 스크롤바 위치, fill="y"옵션 지정 y 축 기준으로 위아래로 움직인다.

#set이 없으면 스크롤을 내려도 다시 올라오게 됨 -> yscrollcommand = scrollbar.set 옵션 추가.
listbox = Listbox(frame, selectmode = "extended", height = 10, yscrollcommand = scrollbar.set)
for i in range(1,32):
    listbox.insert(END, str(i) + "일")
listbox.pack(side = "left")

scrollbar.config(command = listbox.yview)   #listbox에서 상하로 움직이는 뷰를 처리해주는 부분이다.



참고한 블로그 : https://m.blog.naver.com/amethyst_lee/222010340950

 

[파이썬 GUI 프로그래밍] 1. tkinter를 이용한 기본 프레임/윈도우/창 만들기

지난 <아무튼 한 달> 29번째 내용으로 GUI 툴 중 PyQt5를 이용한 윈도우/창을 만드는 예제를 해...

blog.naver.com

728x90

'python_GUI' 카테고리의 다른 글

Python GUI - tkinter 이용한 Text & Entry widget 만들기  (0) 2021.08.26