如何阻止Tkinter Frame自动收缩适配内容?已遇语法错误
解决Tkinter Frame自动收缩的问题
你碰到的语法错误是两个问题导致的:
- 方法名拼写错误:正确的方法是
propagate(),不是你写的propogate() - 参数使用错误:Python里的布尔值需要写
False(首字母大写),不能用小写的false
修正这两点后,把方法调用加到Frame布局代码之后,就能固定Frame的尺寸,避免它自动收缩适配内部内容。修改后的完整代码如下:
import tkinter as tk root = tk.Tk() root.geometry("1280x800") root.title(" Linc") root.wm_attributes('-toolwindow', 'True') # 创建左右两个Frame left_frame = tk.Frame(root, width=700, height=790, bg='grey' ) left_frame.grid(row=0, column=0, padx=5, pady=5) # 阻止left_frame自动收缩 left_frame.propagate(False) right_frame = tk.Frame(root, width=560, height=790, bg='grey') right_frame.grid(row=0, column=1, padx=5, pady=5) # 阻止right_frame自动收缩 right_frame.propagate(False) # left_frame内的内容 ticket = tk.Label(left_frame, text="Original Image").grid(row=1, column=0, padx=5, pady=5) # pullbutton = tk.Button(text="Pull", command=pull) # pullbutton.pack(side='top') # label = tk.Label(text="text") # label.pack() # 启动Tkinter主循环 root.mainloop()
另外需要注意:开启propagate(False)后,Frame内部的组件将不再影响Frame的尺寸,你需要自行管理内部组件的布局位置,避免组件超出Frame范围。
内容的提问来源于stack exchange,提问作者Asher
相关产品推荐
相关产品推荐

