3

我对 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 方向上调整大小会留下一堆空白空间。

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

4

1 回答 1

5

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

self.frame.pack(fill = "both", expand = 1)
...
self.canvas.pack(fill = "both", expand = 1)

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

于 2011-05-28T01:50:17.900 回答