2013-10-24 38 views
0

我有一个图像,可以采取可变大小,我想显示它在一个窗口滚动条,以探索它。 我做了以下无法滚动tkinter中的图像

 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) 

我的问题:显示的图像裁剪,但滚动条“充分”,并有无处滚动到。 然而,我确定我在某处读到滚动条必须有框架作为父母

回答

1

您必须告诉画布小部件大型虚拟画布的哪部分应该可见。您可以通过设置画布的scrollregion属性来执行此操作。通常你传入bbox方法的结果,该方法给出画布中对象的边界框。特殊字符串"all"为您提供了所有画布对象都可以放入的框的坐标。

例如:

conncv.configure(scrollregion=conncv.bbox("all")) 
+0

就是这样,谢谢! – alessandro