tkinter 设置小部件固定宽度和高度



在这里我定义了一个子框架类,并希望在其容器中使用这样的帧实例并为这样的小部件设置固定大小,我尝试了如下方法。 但总是得到'MainFrame' object has no attribute 'resizable'错误。 这是测试演示,任何帮助将不胜感激。

from tkinter import *
class MainFrame(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.createWidget()
    def createWidget(self):
        self.innerFrame = Frame(self)
        self.innerFrame.master.resizable(width=False, height=False)  # ====> this place raise error:'MainFrame' object has no attribute 'resizable'
        self.innerFrame.master.maxsize(width=300, height=400)
        for l in range(100):
            label = Label(self.innerFrame, text="label" + str(l))
            label.pack()
        self.innerFrame.pack()
if __name__ == '__main__':
    top = Tk()
    top.resizable(width=False, height=False)
    top.minsize(width=400, height=600)
    app = MainFrame(top)
    app.pack()
    app.mainloop()

.resizable().maxsize()仅适用于Tk根窗口以及使用Toplevel()创建的其他窗口。 要使 Frame 具有固定大小,请在创建时为其提供width=height=选项,然后对其调用 .pack_propagate(False).grid_propagate(False)(无论哪个与将用于其子微件的几何体管理器匹配(。

最新更新