Не получается разместить виджеты в фрейм
В приведенном коде
f1
- это результат вызова метода
pack()
, который НЕ возвращает ссылку на фрэйм, а возвращает
None
. Это базовый синтаксис питона, переменной присваивается результат вызова функции.
Не могу задать высоту и ширину фрейма
Документация tk говорит, что "If you want to force the frame to have a specific width, call the .grid_propagate(0) on the widget". По дефолту ткинтер задает всем элементам минимальный требуемый размер, чтобы все поместилось, либо растягивает от минимального размера до размера окна, если указать, как растягивать. Ну, а если места не хватает, то начинаются сжатие, обрезка, невлезание в окно и т.д. В принципе, стандартное поведение многих десктопных гуишек.
Для сколько-нибудь сложного гуи в ткинтере лучше, конечно, использовать
.grid(...)
- больше строк кода, но более гибкий и контролируемый результат. Грид - это сетка, у нее есть параметр минимального размера строки/столбца.
import *
- это плохо.