Почему меняется размер фрейма после помещения в него виджета?

import tkinter
from tkinter import *

if __name__ == '__main__':
    win = tkinter.Tk()
    win.title ('Test')
    win.geometry ('200x200')

    frameData = tkinter.Frame(win, width=200, height=100, bg='red')
    frameList = tkinter.Frame(win, width=200, height=100, bg='green')

    frameData.grid(column=0,row=0,  sticky=NSEW)
    frameList.grid(column=0,row=1,  sticky=NSEW)

    labelNoDoc = tkinter.Label(frameData, text='Номер документа:')
    labelNoDoc.grid(column=0, row=0)

    tkinter.mainloop()

В окне создаются два frame и растягиваются на все окно.
Все выглядит красиво.

Но как только в один из фреймов помещается widget (в данном случае Label), размер фрейма меняется.

введите сюда описание изображения

Что не так?


Ответы (1 шт):

Автор решения: S. Nick

Как вариант:

from tkinter import *


if __name__ == '__main__':
    win = Tk()
    win.title ('Test')
    win.geometry ('200x200')

    frameData = Frame(win, width=200, height=100, bg='red')
    frameList = Frame(win, width=200, height=100, bg='green')

    frameData.grid(column=0, row=0, 
        columnspan=3, rowspan=3, 
        sticky=NSEW)
    frameList.grid(column=0, row=4, 
        columnspan=3, rowspan=3,     
        sticky=NSEW)

    labelNoDoc = Label(win, text='Номер документа:')
    labelNoDoc.grid(
        column=0, row=1, 
        sticky='w')

    mainloop()

введите сюда описание изображения

→ Ссылка