リストボックスを作成するフレームと関数があります。ボタンを押すと、フレームを非表示にして新しいフレームを作成し、このフレームで create_listbox 関数も使用したいと考えています。フレームを非表示にして新しいフレームを作成すると、完全に正常に機能します。ただし、2番目のフレームでリストボックスを作成しようとすると、ウィンドウが狂ってサイズが変更され続けます。これは、プログラムの簡略化されたバージョンです。
class App(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.grid()
self.f1 = Frame(self.master)
self.f1.pack()
self.f2 = Frame(self.f1)
self.f2.grid()
self.create_listbox(self.f1)
def create_listbox(aframe):
self.listbox = Listbox(aframe)
self.listbox.pack()
def hide_f2:
self.f2.grid_forget()
self.f3 = Frame(self.f1)
self.create_listbox(self.f1)
最初に、リストボックスオブジェクトがf2とf3の両方に属しているため、非表示にするか表示するかを決定できないためだと考えましたが、今はもうわかりません:(