可以通过以下方法控制TKINTER WINDOWS的大小:

.minsize()
.maxsize()
.resizable()

是否有控制TKINTER或TTK帧大小的等效方法?

@Bryan:我将您的frame1.pack代码更改为以下:

frame1.pack(fill='both', expand=True)
frame1.bind( '<Configure>', maxsize )

我添加了这个活动处理程序:

# attempt to prevent frame from growing past a certain size
def maxsize( event=None ):
    print frame1.winfo_width()
    if frame1.winfo_width() > 200:
        print 'frame1 wider than 200 pixels'
        frame1.pack_propagate(0)
        frame1.config( width=200 )
        return 'break'

上面的事件处理程序检测到框架的宽度太大,但无法防止大小增加发生。这是TKINTER的局限性还是我误解了您的解释?

有帮助吗?

解决方案

没有一个魔术功能可以将框架迫使框架至最小或固定尺寸。但是,您当然可以通过给框架宽度和高度来强制框架的大小。然后,您必须再做两件事:将此窗口放在容器中时,您需要确保几何管理器不会收缩或扩展窗口。第二,如果框架是其他小部件的容器,请关闭网格或包装传播,以使框架不会收缩或扩展以适合其自己的内容。

但是,请注意,这不会阻止您调整窗口的大小要小于内部框架。在这种情况下,框架将被剪裁。

import Tkinter as tk

root = tk.Tk()
frame1 = tk.Frame(root, width=100, height=100, background="bisque")
frame2 = tk.Frame(root, width=50, height = 50, background="#b22222")

frame1.pack(fill=None, expand=False)
frame2.place(relx=.5, rely=.5, anchor="c")

root.mainloop()
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top