0
stackoverflow와 다른 곳 (effbot 등)에서 많은 참조를 보았습니다. 스크롤 막대를 표시하는 캔버스에서 프레임을 가져올 수 있지만 스크롤 할 수는 없습니다. Tkinter : 스크롤바가 나타나지만 작동하지 않습니다.
이 예제에서는 엔트리 위젯이있는 프레임을 스크롤하려고합니다. 프레임이 상위의 높이를 초과하게하는 많은 항목 위젯이있는 또 다른 (실제) 응용 프로그램이 있습니다.
# **** SCROLL BAR TEST *****
from tkinter import *
from tkinter import ttk
root = Tk()
root.title("Scrollbar Test")
root.geometry("800x400")
root.configure(background="light gray")
frame = Frame(root, height=300, width = 200, borderwidth=2, relief=SUNKEN, background="light gray")
frame.grid(column=0, row=0, sticky=W)
yscrollbar = Scrollbar(frame)
yscrollbar.grid(column=1, row=2, sticky=N+S)
canvas = Canvas(frame, bd=0, scrollregion=(0,0,800, 600), yscrollcommand=yscrollbar.set)
canvas.grid(column=0, row=0, sticky=N+S+E+W)
yscrollbar.config(command=canvas.yview)
frame = Frame(canvas, height=300, width = 200, borderwidth=2, relief=SUNKEN, background="light gray")
frame.grid(column=0, row=0, sticky=W)
label = ttk.Label(frame, text="This is a label")
label.grid(column=1, row=0, sticky=W)
text = ttk.Entry(frame, textvariable="text")
text.grid(column=2, row=0, sticky=W)
label1= ttk.Label(frame, text="This is a label")
label1.grid(column=1, row=1, sticky=W)
text1 = ttk.Entry(frame, textvariable="text")
text1.grid(column=2, row=1, sticky=W)
label2 = ttk.Label(frame, text="This is a label")
label2.grid(column=1, row=2, sticky=W)
text2 = ttk.Entry(frame, textvariable="text")
text2.grid(column=2, row=2, sticky=W)
label3 = ttk.Label(frame, text="This is a label")
label3.grid(column=1, row=3, sticky=W)
text3 = ttk.Entry(frame, textvariable="text")
text3.grid(column=2, row=3, sticky=W)
label4 = ttk.Label(frame, text="This is a label")
label4.grid(column=1, row=4, sticky=W)
text4 = ttk.Entry(frame, textvariable="text")
text4.grid(column=2, row=4, sticky=W)
label5 = ttk.Label(frame, text="This is a label")
label5.grid(column=1, row=5, sticky=W)
text5 = ttk.Entry(frame, textvariable="text")
text5.grid(column=2, row=5, sticky=W)
label6 = ttk.Label(frame, text="This is a label")
label6.grid(column=1, row=6, sticky=W)
text6 = ttk.Entry(frame, textvariable="text")
text6.grid(column=2, row=6, sticky=W)
label7 = ttk.Label(frame, text="This is a label")
label7.grid(column=1, row=7, sticky=W)
text7 = ttk.Entry(frame, textvariable="text")
text7.grid(column=2, row=7, sticky=W)
label8 = ttk.Label(frame, text="This is a label")
label8.grid(column=1, row=8, sticky=W)
text8 = ttk.Entry(frame, textvariable="text")
text8.grid(column=2, row=8, sticky=W)
label9 = ttk.Label(frame, text="This is a label")
label9.grid(column=1, row=9, sticky=W)
text9 = ttk.Entry(frame, textvariable="text")
text9.grid(column=2, row=9, sticky=W)
root.mainloop()
캔버스에 추가 된 내용을'pack','place' 또는'grid'로 스크롤 할 수 없습니다. 예를 보려면 https://stackoverflow.com/a/3092341/7432를 읽어보십시오. –