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()
添加回答
舉報