为了账号安全,请及时绑定邮箱和手机立即绑定

如何使框架无法调整大小

如何使框架无法调整大小

鸿蒙传说 2022-01-11 16:44:01
我的框架中有一个“添加任务”按钮,它创建了一个新的文本小部件来输入一些文本,并添加了文本小部件,框架保持垂直扩展我试过使用 resizable(False, False),它显示 AttributeError: '_tkinter.tkapp' object has no attribute 'resizable'class Container(tk.Frame):    def __init__(self, parent = None, priority = 3, bg = 'bisque'):        tk.Frame.__init__(self, parent)        self.f = tk.Frame(parent)        self.f.configure(bg = bg)        self.f.pack(fill = 'both', expand = True)        self.tk.resizable(False, False)if __name__ == '__main__':    window = tk.Tk()    window.geometry('300x200-400+75')    window.minsize(300, 600)    p1 = Container(window, priority = 1)    p2 = Container(window, bg = 'blue', priority = 2)    p3 = Container(window, bg = 'red', priority = 3)    window.mainloop()
查看完整描述

1 回答

?
达令说

TA贡献1821条经验 获得超6个赞

您不能self.tk.resizable(False, False)用于框架小部件,它仅用于主窗口。


解决方案


如果您只想在将小部件添加到框架时使框架不可调整大小,请使用self.propagate(0)这不会让子小部件接管父小部件的大小。


但是,如果您希望主窗口不调整大小,请使用 window.resizable(False, False)


代码


import tkinter as tk


class Container(tk.Frame):

    def __init__(self, parent = None, priority = 3, bg = 'bisque'):

        tk.Frame.__init__(self, parent)

        self.f = tk.Frame(parent)

        self.f.configure(bg = bg)

        self.propagate(0)

        self.f.pack(fill = 'both', expand = True)



if __name__ == '__main__':

    window = tk.Tk()

    window.geometry('300x200+400+75')

    window.minsize(300, 600)


    # Use this if you don't want the main window to be resizable.

    # window.resizable(False, False)


    p1 = Container(window, priority = 1)

    p2 = Container(window, bg = 'blue', priority = 2)

    p3 = Container(window, bg = 'red', priority = 3)


    window.mainloop()


查看完整回答
反对 回复 2022-01-11
  • 1 回答
  • 0 关注
  • 184 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号