Найти - Пользователи
Полная версия: Tkinter: прошу помощи с концептом))
Начало » GUI » Tkinter: прошу помощи с концептом))
1
Ryoga
Тут даже вопрос нормально сформулировать не могу. Попробую растечься мыслью по древу.

Имеем подобную болванку.
В широком правом/нижнем Frame надо выложить набор кнопок с картинками, слева направо, сверху вниз.
Проблема в том, что количество кнопок и размер фрейма (зависит от разрешения экрана) заранее не определены. Более того, в идеале и размер картинки на кнопках заранее не определен - известно лишь то, что он будет одинаков для всех кнопок.
Способы “переноса виджетов на другую строку”, наподобие блоков HTML, если и существуют, то мне неизвестны.
Ширину фрейма определить можно (с прицелом на “поделить” без остатка получить количество кнопок в ряду) - но толку от нее, если я не знаю ширины кнопки? Ширину кнопки я определить могу лишь после того, как ее выложу.

Как бы вы это реализовывали? Просто идеи подкиньте, плз, а то уже голова пухнет.
4kpt_II
Задача ясна. Такого метода, который бы переносил за Вас объекты на следющую строку в Tkinter нет.
Придется анализировать самостоятельно и строить. Другого варинта нет

Ryoga
Ширину кнопки я определить могу лишь после того, как ее выложу.

Ступор. Вы откуда кнопки берете? Из изображений?
py.user.next
Надо обработать случаи, когда одна кнопка не помещается и когда все кнопки не помещаются как в ширину, так и в высоту.
Ryoga
4kpt_II
Ступор. Вы откуда кнопки берете? Из изображений?
Почти. Есть список пар (имя файла картинки:подпись к ней). Но даже зная размер картинки, предугадать размеры итоговой кнопки в пикселах я не могу. Жестко задать размеры, впрочем, тоже - width у кнопки указывается не в пикселах, а, похоже, в знакоместах.
4kpt_II
Мамочка моя. Зачем Вам кнопка. Можно всталять любым объектом и на него вешать бинд. Еще раз. Фотография, которую Вы вставляете хранится на диске?
Ryoga
Фотография да, на диске.
Предлагаете преварительно сформировать готовые изображения “кнопка + подпись + окантовка” со строго заданной шириной и выкладывать уже их?
4kpt_II
Нет. Зачем строго заданная величина. Построить блок. Весь полученный блок образмерить и сконфигурировать рамку.

Перед образмериванием не забудьте update_idletasks(), так как размер формирует менеджер окон уже в процессе вывода. Это позволит снять размеры иначе будут 1.
Ryoga
Разумно, спасибо. Это действительно выход.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB