python/tkinter

[Python tkinter GUI] #13 Scrollbar(스크롤바)

ohojee 2022. 12. 16. 17:54
전체 소스코드
from tkinter import *

root = Tk()

root.title("GUI")
root.geometry("300x150")

frame = Frame(root)
frame.pack()

scrollbar = Scrollbar(frame)
scrollbar.pack(side="right", fill="y")

#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)

root.mainloop()
 
 

yscrollcommand=scrollbar.set이 없으면 스크롤을 잡고 내려도

리스트가 내려가지 않고 스크롤도 다시 원위치된다

이것만 해서는 우리가 아는 스크롤처럼 동작하지 않고

꼭 listbox와 scrollbar가 서로 mapping하도록 해줘야한다

 

그래서 스크롤바에도

.config(command=listbox.yveiw)를 써줘야한다

.yview는 상하로 움직이는 것에 대해 처리한다


scrollbar.pack(side="right", fill="y")에서

괄호 안을 써주지 않으면 스크롤바가 이렇게 옹졸하게 뜬다

 

차례대로 side와 fill을 각각 적용한 창이다