Я не думаю, что ipady
вполне делает то, о чем вы думаете. Следует признать, что документация немного неясна по этому вопросу. Это не добавляет эквивалент внутреннего поля. Вместо этого он просто добавляет столько пикселей к высоте виджета, и пиксели добавляются на внутренней стороне границы, а не на внешней стороне. Он не блокирует использование этих пикселей.
Если ваш кадр обычно имеет высоту 20 пикселей, с ipady=50
, ваш виджет теперь будет иметь высоту 120 пикселей (50 * 2 + 20). Любые виджеты, добавленные внутри этого фрейма, могут использовать все пространство внутри фрейма. Таким образом, когда вы используете grid
для размещения чего-либо в нулевой строке, оно все равно будет отображаться в самой верхней части кадра, чуть ниже границы.
Это именно то, что я вижу с вашим кодом. На моей машине frame2 без ipady=50
в итоге достигает 20 пикселей в высоту. Когда я добавляю ipady=50
, рамка становится 120 пикселей в высоту. Метка появляется в самом верху рамки, поскольку она была помещена в нулевую строку.
TL; DR: не думайте о том, что ipady говорит "мне нужно так много внутреннего поля", а скорее "мне нужно гораздо больше дополнительного пространства внутри".