You are calling grid_propagate but then using pack() to put widgets in it. Try doing
grid_propagate
pack()
self.frame.pack_propagate(False)