tkinter - установить геометрию без отображения окна - PullRequest
2 голосов
/ 25 февраля 2009

Я пытаюсь выстроить несколько виджетов меток и холстов. Для этого мне нужно знать, насколько широки мои коробки с этикетками. Я хочу, чтобы мой виджет автоматически настраивался, если пользователь изменяет размер системного шрифта, поэтому я не хочу жестко кодировать 12 пикселей на символ. Если я измеряю виджет метки, он всегда имеет ширину 1 пиксель. Пока я не вызову .update (), я получу правильное значение. Но .update () выводит на экран окно с моим ярлыком, затем окно исчезает, когда я наконец упаковываю свои последние виджеты. Но это вызывает нежелательную вспышку, когда я впервые поднимаю виджет.

Итак, как я могу измерить виджет метки без его использования .update ()? Или как я могу .update () виджет, не отображая его на экране? Я использую Python, если это имеет значение.

1 Ответ

1 голос
/ 25 февраля 2009

Снимите окно перед вызовом обновления. Вам нужна команда wm_withdraw

root = Tk()
root.wm_withdraw()
<your code here>
root.wm_deiconify()

Однако, если ваша настоящая проблема заключается в размещении виджетов, вам обычно не нужно знать размер виджетов. Используйте менеджер геометрии сетки. Возьмите лист миллиметровки и положите на него свои виджеты. Не стесняйтесь охватывать столько квадратов, сколько необходимо для каждого виджета. После этого дизайн можно легко преобразовать в серию вызовов сетки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...