此代码在一个窗口中生成两个画布。但是Python不会将它们彼此粘在一起,而是在它们之间设置了一个间隙。当我调整窗口大小时,这个差距会变得更大。在
from Tkinter import *
class App:
def __init__(self,master):
master.title('Python Canvas Testing')
master.minsize(width=550, height=450)
settingscanvas = Canvas(master,bg="yellow")
settingscanvas.pack(side='top',anchor='nw',expand=True,fill='x')
datacanvas = Canvas(master,bd=1,bg="green")
datacanvas.pack(side='top',anchor='nw',expand=True,fill='both')
for r in xrange(15):
Label(settingscanvas, text='Label'+str(r+1)).grid()
Label(datacanvas, text='Label 2').grid()
## create main program window
window = Tk()
## create window container
app = App(window)
mainloop()
有没有我错过的选择,把两幅画布粘在一起,这样就没有空隙了?在
我不知道如何让它和背包一起工作。但是你可以用网格管理器来做。要使用网格扩展小部件,您需要设置两件事。首先,“sticky”参数允许widget填充网格中单元格内的空间(“ew”水平填充,“nsew”填充两个方向)。其次,列和/或行的weight参数使其在为正时可消耗。
两个小部件都将
expand
设置为True
,因此它们各自被分配了一些额外的空间。如果您只想让一个获得额外的空间,请将另一个的expand
设置为False
。如果您希望它们都有一些额外的空间,请确保设置fill
以包括y方向。相关问题 更多 >
编程相关推荐