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

Mik*_*ebb 3 python anchor tkinter 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="black", width=1000, height=700)
        self.canvas.pack(fill="both")

root = Tk()
main_frm = frm_main(root)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几种不同的选项和测试,看起来框架和画布都是在x方向上锚定和扩展,但是在y方向上调整大小会留下一堆空白空间.

如何让Frame锚定到窗口的所有边,然后将画布锚定到我框架的所有边?我应该使用Frame吗?

ant*_*kos 5

设置expand = 1调用以pack()在调整容器大小时调整窗口小部件.

self.frame.pack(fill = "both", expand = 1)
...
self.canvas.pack(fill = "both", expand = 1)
Run Code Online (Sandbox Code Playgroud)

您可以使用框架对一组窗口小部件进行分组或添加额外的边框,但在此示例中不需要框架.