내 tkinter 캔버스의 스크롤 막대 위치에 관한 질문. 3 캔버스 위젯이있는 프레임이 있습니다. 아이디어를위한 의례 to this post. 가로 스크롤 막대를 추가했고 각 캔버스에는 50+ 열 500+ 행 팬더 데이터 프레임이 있습니다. 부하는 매우 빠르지는 않지만 목표가 아닙니다.tkinter 아래쪽 위치에 캔버스에 스크롤바 넣기
새 행이 각 데이터 프레임의 맨 아래에 추가됩니다. 이 새 행에는 유효성 검사가 필요합니다. 따라서 매번 아래로 스크롤하는 대신 스크롤바/또는 캔버스가 맨 아래 부분을 표시하면 좋을 것입니다.
3x 캔버스와 3x 스크롤바 (x + y)가 정의 된 코드는 아래를 참조하십시오.
def createBox(window):
list_ = ['df1', 'df2', 'df3'] # 3 dataframes
for i in range(3):
mybox = LabelFrame(window, padx=5, pady=4)
mybox.grid(row=i, column=0)
createWindow(mybox, list_[i], i)
def createWindow(box, lt_actual, i):
canvas = Canvas(box, borderwidth=0)
frame = Frame(canvas)
vsbY = Scrollbar(box, orient="vertical", command=canvas.yview)
canvas.configure(yscrollcommand=vsbY.set, width=1200, heigh=200)
vsbY.pack(side="right", fill="y")
vsbX = Scrollbar(box, orient="horizontal", command=canvas.xview)
canvas.configure(xscrollcommand=vsbX.set, width=1200, heigh=200)
vsbX.pack(side="bottom", fill="x")
#canvas.yview_moveto(1) - no effect
#canvas.yview_moveto(1.0) - no effect
canvas.pack(side="left", fill="both", expand=True)
canvas.create_window((4,4), window=frame, anchor="nw", tags="frame")
# be sure that we call OnFrameConfigure on the right canvas
frame.bind("<Configure>", lambda event, canvas=canvas: OnFrameConfigure(canvas))
나는이 포럼과 내가의 moveTo()/yview_moveto() 명령 옵션하지만 지금까지이 작동하지 않는 것를 사용하는 몇 가지
info (effbot) pages에 읽었다.
질문 1. y 스크롤 막대를 맨 아래에 놓아야합니까, 아니면 캔버스보기를 맨 아래에 놓아야합니까?
질문 2. moveto 사용 방법에 대한 지침을 제공 할 수 있습니까? 아니면 다른 접근 방식을 따라야합니까?
정말 고마워요!
@ l_4321 감사합니다. 이것은 실제로 작동하는 예입니다. 나중에 내 코드가 잘못된지 확인합니다. 하지만 내 실수에 대한 피드백을 제공 할 것입니다. Thnx. –