Я тестировал способ скрытия и показа кадров нажатием кнопки (кнопки станут панелью меню позже). Итак, я создал этот код:
import tkinter as tk
from tkinter import *
win = Tk()
win.geometry("275x350")
win.title("Password Manager")
win.configure(background="white")
frame1 = Frame(win, width=200, height=200)
frame1.grid_propagate(False)
frame2 = Frame(win, width=200, height=200)
frame2.grid_propagate(False)
Label(frame1, text="Hello world", font="20").grid()
Label(frame2, text="Zweiter frame", font="20").grid()
def runGrid(run, destroy):
run.grid(row=1, column=2)
destroy.grid_forget()
def run2nd(run, destroy):
run.grid(row=1, column=2)
destroy.grid_forget()
Button(win, text="Run", command=lambda:runGrid(frame1, frame2)).grid(row=0, column=0)
Button(win, text="Run 2nd", command=lambda:run2nd(frame2, frame1)).grid(row=0, column=1)
win.mainloop()
Так вот в чем проблема ... После нажатия первой кнопки первый кадр появляется в нужном ему размере. После нажатия 2-й кнопки 2-й кадр подходит к нужному размеру. Но при повторном нажатии первой кнопки (после однократного нажатия обеих кнопок) рамка просто отображается, как grid_propagate
было удалено из кода (рамка такая же большая, как и метка в ней). Может кто-нибудь объяснить мне ошибку в моем коде, которая вызывает проблему?
Большое спасибо;)