○ 프로그레스 바 만들기
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
'python_GUI' 카테고리의 다른 글
Python GUI - tkinter 이용한 Text & Entry widget 만들기 (0) | 2021.08.26 |
---|