У меня есть всплывающее окно, представляющее собой холст, для которого я хочу разрешить пользователю перетаскивать его до любого размера, который они хотят, однако он может свернуть во что-то очень маленькое и непригодное для использования. Есть ли способ установить минимальный размер холста? (например, как «wm minsize») Надеюсь, ответ не в том, чтобы встроить холст «в окно».
Есть ли способ установить минимальный размер холста tcl/tk?
Ответы (1)
Естественный минимальный размер холста — 11.
Как правило, фактический минимальный размер холста устанавливается менеджером геометрии; поскольку большую часть времени вы хотите использовать grid
для содержания холста (чтобы вы могли правильно расположить полосы прокрутки), ключевым моментом является установка минимальных размеров для соответствующей строки и столбца:
set master .
set canvas .canv
# Go for a minimum size of 400x200
grid columnconfigure $master $canvas -minsize 400
grid rowconfigure $master $canvas -minsize 200
pack
GM вообще не позволяет указать минимальный размер; он использует модель компоновки, в которой нет этой концепции. place
позволяет говорить все напрямую, но в большинстве ситуаций не очень помогает. Если вы встраиваете холст в другой виджет (например, в текстовый виджет), могут быть другие варианты.
Обратите внимание, что вы не можете фактически заставить систему подчиняться указанным вами директивам минимального размера. Это просто (действительно сильные) намеки. (Возможно, вы также захотите изучить команду wm minsize
, чтобы управлять требуемым размером всего окна верхнего уровня, но это независимо; минимальный размер виджета не является минимальным размером всего контейнера, хотя они могут взаимодействовать.)