我有一个可以承担可变大小的图像,我想在带有滚动条的窗口中显示它,以便探索它。 我做了以下
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)
我的问题:显示的图像被裁剪,但滚动条“已满”,无处可滚动。 但我确定我在某处读到滚动条必须将框架作为父母
答案 0 :(得分:1)
您必须告诉画布小部件大型虚拟画布的哪些部分应该是可见的。您可以通过设置画布的scrollregion
属性来完成此操作。通常,您传入bbox
方法的结果,该方法在画布中提供对象的边界框。特殊字符串"all"
为您提供了一个框,其中所有画布对象都可以适合。
例如:
conncv.configure(scrollregion=conncv.bbox("all"))