tkinter                
            스크롤 위젯
        
        
            
    수색…
소개
목록 상자, 캔버스 및 텍스트 위젯에 스크롤 막대를 추가 할 수 있습니다. 또한 항목 위젯을 가로로 스크롤 할 수 있습니다. 다른 유형의 위젯을 스크롤하려면 Canvas 또는 Text 위젯 내부에 배치해야합니다.
통사론
- scrollbar = tk.Scrollbar (부모, ** kwargs)
 
매개 변수
| 매개 변수 | 기술 | 
|---|---|
| 부모의 | tkinter 위젯은 계층에 존재합니다. 루트 창을 제외하고 모든 위젯에는 부모가 있습니다. 일부 온라인 자습서에서는이를 "마스터"라고 부릅니다. 위젯이 pack, place 또는 grid로 화면에 추가되면이 상위 위젯 안에 나타납니다 | 
| 동양 |  스크롤 바의 "vertical" (디폴트 값) 또는 "horizontal"  | 
비고
 이 예제들은 tkinter가 import tkinter as tk ( import tkinter as tk (파이썬 3) 또는 import tkinter as tk ( import Tkinter as tk (파이썬 2) import Tkinter as tk 되었다고 가정합니다. 
텍스트 위젯에 수직 스크롤바 연결하기
위젯과 스크롤 바 사이의 연결은 두 가지 방식으로 진행됩니다. 스크롤바는 위젯과 같은 높이가되도록 세로로 확장해야합니다.
text = tk.Text(parent)
text.pack(side="left")
scroll_y = tk.Scrollbar(parent, orient="vertical", command=text.yview)
scroll_y.pack(side="left", expand=True, fill="y")
text.configure(yscrollcommand=scroll_y.set)
        캔버스 위젯을 수평 및 수직으로 스크롤
 원칙적으로 텍스트 위젯과 원칙적으로 동일하지만 Grid 레이아웃은 스크롤 막대를 위젯 주위에 두는 데 사용됩니다. 
canvas = tk.Canvas(parent, width=150, height=150)
canvas.create_oval(10, 10, 20, 20, fill="red")
canvas.create_oval(200, 200, 220, 220, fill="blue")
canvas.grid(row=0, column=0)
scroll_x = tk.Scrollbar(parent, orient="horizontal", command=canvas.xview)
scroll_x.grid(row=1, column=0, sticky="ew")
scroll_y = tk.Scrollbar(parent, orient="vertical", command=canvas.yview)
scroll_y.grid(row=0, column=1, sticky="ns")
canvas.configure(yscrollcommand=scroll_y.set, xscrollcommand=scroll_x.set)
  텍스트 위젯과는 달리 캔버스의 스크롤 영역은 내용이 수정 될 때 자동으로 업데이트되지 않으므로이를 정의하고 scrollregion 인수를 사용하여 수동으로 업데이트해야합니다. 
canvas.configure(scrollregion=canvas.bbox("all"))
  canvas.bbox("all") 는 전체 캔버스 내용에 맞는 사각형의 좌표를 반환합니다. 
위젯 그룹 스크롤하기
 창에 많은 위젯이 포함되어있는 경우 모두 표시되지 않을 수 있습니다. 그러나 창 (Tk 또는 Toplevel 인스턴스)이나 프레임도 스크롤 할 수 없습니다. 창 내용을 스크롤 할 수있게 만드는 한 가지 해결책은 모든 위젯을 프레임에 넣은 다음 create_window 메서드를 사용하여이 프레임을 Canvas에 포함시키는 것입니다. 
canvas = tk.Canvas(parent)
scroll_y = tk.Scrollbar(parent, orient="vertical", command=canvas.yview)
frame = tk.Frame(canvas)
# group of widgets
for i in range(20):
    tk.Label(frame, text='label %i' % i).pack()
# put the frame in the canvas
canvas.create_window(0, 0, anchor='nw', window=frame)
# make sure everything is displayed before configuring the scrollregion
canvas.update_idletasks()
canvas.configure(scrollregion=canvas.bbox('all'), 
                 yscrollcommand=scroll_y.set)
                 
canvas.pack(fill='both', expand=True, side='left')
scroll_y.pack(fill='y', side='right')
    
    
    
    
    Modified text is an extract of the original Stack Overflow Documentation
        아래 라이선스 CC BY-SA 3.0
        와 제휴하지 않음 Stack Overflow