我一直很难让画布/窗口扩展到我在小部件中放入的信息的大小。我想添加滚动条并限制画布的大小。这是一个大程序中的弹出窗口。这是我的密码
from Tkinter import *
import os
import tkMessageBox
class ClusterDialog(Toplevel):
def __init__(self, parent, displayClass, clusterInfo, title = None):
Toplevel.__init__(self, parent)
self.transient(parent)
#top = self.top = Toplevel(parent)
if title:
self.title(title)
#set parent
self.parent = parent
#set class
self.dClass = displayClass
#dictionary to store the header data in
self.clusterInfo = clusterInfo
#stores checkbox variables
self.varList = None
self.boxList = None
self.name = None
self.frameTopLevel = Frame(self,bd=2, width = 200,height=300)
self.frameTopLevel.pack()
self.buttonbox(self.frameTopLevel)
self.frame = Frame(self.frameTopLevel, width = 200,height=300)
#frame=Frame(root,width=300,height=300)
self.frame.grid(row=0,column=0)
self.frame.pack()
self.canvas=Canvas(self.frame,bg='#FFFFFF',width=300,height=300,scrollregion=(0,0,500,1000))
hbar = Scrollbar(self.frame,orient=HORIZONTAL)
hbar.pack(side=BOTTOM,fill=X)
hbar.config(command=self.canvas.xview)
vbar=Scrollbar(self.frame,orient=VERTICAL)
vbar.pack(side=RIGHT,fill=Y)
vbar.config(command=self.canvas.yview)
self.canvas.config(width=300,height=300)
self.canvas.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set)
self.canvas.pack(side=LEFT,expand=True,fill=BOTH)
self.frame.config(height = 100)
self.body(self.canvas)
self.canvas.config(width=300,height=300)
self.grab_set()
基本上,我尝试创建一个顶层框架,其中包含一个包含滚动条和画布的框架。这个自身按钮盒(self.frameTopLevel)添加一些按钮和自我身体(自我.canvas)添加一堆复选框供用户操作。在
当我运行这段代码时,我的窗口总是扩大到屏幕的大小,我不能滚动,虽然滚动条出现了,但它们不做任何事情。如有任何帮助,不胜感激?我一直在寻找其他线程与类似的问题,但没有找到一个解决办法,将工作。在
谢谢
我只是让你的代码工作,但是我已经注释了一些东西,所以它没有填充画布上的按钮。但窗户并没有占据整个屏幕。。。在
窗口大小:也许可以尝试设置顶层的几何图形?在
画布:问题在于将小部件放置在画布中。您可能想看看这个例子:effbot
相关问题 更多 >
编程相关推荐