이전에 스크롤 가능한 캔버스를 만들었지 만 버튼으로 그 중 하나를 채워야하는 이유와 스크롤 막대가 비활성 상태 인 이유를 모르겠습니다. 아마도 문제는 캔버스입니다. 버튼이 포함되어 있습니까?캔버스 전체를 스크롤 할 수 없습니다.
그것은 캔버스와 스크롤이 제대로 vscrollbar.set
및 cv.yview
로 연결된 것으로 보인다 이후이 비활성 상태임을 이상한은 ... 브라이언의 대답에 따라
from Tkinter import *
def main():
root = Tk()
root.geometry("%dx%d+0+0" % (1800,1000))
auxframe=Frame(root)
auxframe.pack(fill=BOTH, expand=YES)
cv = Canvas(auxframe, scrollregion=(0,0,8000,8000))
vscrollbar = Scrollbar(auxframe, orient=VERTICAL)
vscrollbar.pack(fill=Y, side=RIGHT)
vscrollbar.config(command=cv.yview)
cv.config(yscrollcommand=vscrollbar.set)
cv.pack(side=LEFT, fill=BOTH, expand=TRUE)
memimages=[]
for row_index in range(8):
for col_index in range(8):
iconimage = PhotoImage(file="test.gif")
b=Button(cv,image=iconimage)
memimages.append(iconimage)
b.grid(row=row_index, column=col_index, sticky=N+S+E+W)
mainloop()
main()
(편집)
, 나는 그것이 추가하여 작동하게 이 - fcv는 압축되지 않습니다.fcv=Frame(root)
cv.create_window(0, 0, anchor = "nw", window=fcv)
모든 버튼은 FCV의 자녀 : b=Button(fcv,image=iconimage)
난 여전히 문서 (예를 들어, infohost 또는 tutorialspot)이이 중요한 사실을 언급 나던 이유를 이해 해달라고
.
나는 제안을 테스트했으며 제대로 작동합니다. 불행하게도, create_window를 사용하면 최대 크기와 관련된 다른 문제가 발생합니다. 여기 https://stackoverflow.com/questions/42830037/tkinter-maximum-canvas-size/42837629#42837629에서 질문했습니다. 네가 그것을 볼 수 있다면 멋질거야. – alessandro