私はスクロール可能なキャンバスを作成していましたが、今はその中の1つをボタンで埋める必要があります。なぜスクロールバーが非アクティブなのかわかりません...おそらく問題はキャンバスボタンがありますか?ボタンでキャンバスをスクロールすることができない
それはブライアンの答えによると、私はそれを追加することで働かせた...キャンバスとスクロールバーが正しく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)この重要な事実を言及doesntの理由を理解しません。
私はあなたの提案をテストし、それは動作します。残念ながら、create_windowを使用すると、最大サイズに関連する別の問題が発生します。ここで私はhttps://stackoverflow.com/questions/42830037/tkinter-maximum-canvas-size/42837629#42837629について尋ねました。もしあなたがそれを見ることができれば素晴らしいだろう... – alessandro