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 回答