Приложение, которое я пытаюсь сделать, структурировано с использованием классов. Размер окна составляет 500x430, и внутри него есть фрейм «сдерживания», который поддерживает еще два фрейма (левый и правый). В правом кадре находится больше кадров, которые будут вызываться при каждом вызове (может быть неактуально, но вызывается кнопками в левом кадре).
У меня проблемы с заполнением рамки контейнера. Я понял, что размер контейнера зависит от того, что ему нужно. Вместо этого мне нужен и правильный кадр (и каждый кадр внутри правого кадра), чтобы заполнить размер окна.
class MainApp(Tk):
def __init__(self, *args, **kwargs):
Tk.__init__(self, *args, **kwargs)
self.geometry('500x430')
container = Frame(self, bg='orange')
container.grid(columnspan=2, rowspan=1, sticky=N+E+S+W)
container.grid_rowconfigure(0)
container.grid_columnconfigure(0)
left_frame = LeftFrame(container, self)
left_frame.grid(row=0, column=0)
right_frame = RightFrame(container, left_frame, bg='green')
right_frame.grid(column=1, row=0, columnspan=2)
rightcontainer = Frame(right_frame, bg='pink')
rightcontainer.grid()
self.frames = {}
for F in (Welcome, AccOne, AccTwo, AccThree):
frame = F(rightcontainer, self)
self.frames[F] = frame
self.show_frame(Welcome)
def show_frame(self, cont):
frame = self.frames[cont]
frame.grid(row=0, column=0, sticky=N+E+S+W)
frame.tkraise()
Я предполагал, что добавление container.grid(sticky=N+E+S+W)
заполнит все окно 500x430, но это не так.
Первый видимый кадр внутри right_frame - «Добро пожаловать». Размер метки внутри фрейма «Welcome» не заполняет ширину окна, поэтому основной фрейм «контейнер» не заполняет ширину приложения.
Если я добавлю невидимую кнопку с большой шириной в поле «Приветствие», рамка контейнера заполнит окно, но не заполнит другие рамки внутри right_frame.
Я новичок в питоне. Я надеюсь, что мой вопрос и способ, которым я объяснил, был ясен. Любая помощь будет оценена.