Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用Python的Tk中,如何指定一个框架或画布来调整窗口的大小?_Python_Tkinter_Anchor_Packing - Fatal编程技术网

在使用Python的Tk中,如何指定一个框架或画布来调整窗口的大小?

在使用Python的Tk中,如何指定一个框架或画布来调整窗口的大小?,python,tkinter,anchor,packing,Python,Tkinter,Anchor,Packing,我对Tk和包装概念是完全陌生的,所以请容忍我。这是我的密码: from Tkinter import * class frm_main: def __init__(self, parent): self.frame = Frame(parent, bg="green") #green for testing self.frame.pack(fill="both") self.canvas = Canvas(self.frame, bg

我对Tk和包装概念是完全陌生的,所以请容忍我。这是我的密码:

from Tkinter import *

class frm_main:

    def __init__(self, parent):
        self.frame = Frame(parent, bg="green") #green for testing
        self.frame.pack(fill="both")

        self.canvas = Canvas(self.frame, bg="black", width=1000, height=700)
        self.canvas.pack(fill="both")

root = Tk()
main_frm = frm_main(root)
root.mainloop()
我尝试了几个不同的选项和测试,看起来框架和画布都在x方向固定和扩展,但在y方向调整大小会留下一堆空白


我如何让框架锚定到窗口的所有侧面,然后让画布锚定到框架的所有侧面?我甚至应该使用框架吗?

在调用
pack()
时设置
expand=1
,使小部件在调整容器大小时进行调整

self.frame.pack(fill = "both", expand = 1)
...
self.canvas.pack(fill = "both", expand = 1)
您可以使用框架对一组小部件进行分组或添加额外的边框,但在本例中不需要框架