0

可変サイズを想定できる画像があり、それをスクロールバー付きのウィンドウに表示して探索したいと考えています。私は次のことをしました

        connroot = Toplevel()
        connfr = Frame(connroot)
        conncv = Canvas(connfr, relief=SUNKEN)
        sbarV = Scrollbar(connfr, orient=VERTICAL)
        sbarH = Scrollbar(connfr, orient=HORIZONTAL)
        sbarV.config(command=conncv.yview)
        sbarH.config(command=conncv.xview)
        conncv.config(yscrollcommand=sbarV.set)
        conncv.config(xscrollcommand=sbarH.set)
        sbarV.pack(side=RIGHT, fill=Y)
        sbarH.pack(side=BOTTOM, fill=X)
        conncv.pack(side=LEFT, expand=YES, fill=BOTH)
        connfr.pack()

次に、特定のイベントで画像を表示します。

        photoconn = PhotoImage(file=tg)
        conncv.create_image(0,0, anchor=NW, image=photoconn)
        img.append(photoconn)

私の問題:表示されている画像はトリミングされていますが、スクロールバーが「いっぱい」で、スクロールする場所がありません。それでも、スクロールバーが親としてフレームを持たなければならないことをどこかで読んだと確信しています

4

1 に答える 1

1

大きな仮想キャンバスのどの部分を表示可能にするかをキャンバス ウィジェットに伝える必要があります。scrollregionこれを行うには、キャンバスの属性を設定します。通常、bboxメソッドの結果を渡します。これにより、キャンバス内のオブジェクトのバウンディング ボックスが得られます。特別な文字列"all"は、すべてのキャンバス オブジェクトが収まるボックスの座標を示します。

例えば:

conncv.configure(scrollregion=conncv.bbox("all"))
于 2013-10-24T18:44:27.417 に答える