Tkinter / ttk расположение кадров и виджетов - PullRequest
0 голосов
/ 18 мая 2011

У меня проблемы с выравниванием некоторых виджетов python tkinter / ttk на небольшом графическом интерфейсе, который я делаю. У моего окна графического интерфейса есть 4 "секции", которые я представляю с помощью рамок. Я использую менеджер сетки, чтобы заполнить каждый кадр соответствующими метками, записями, списками и т. Д. Frame2 (верхний правый или декартовый квадрант 1) является самым большим. Чтобы соответствовать симметрии, я установил параметр sticky для всех моих кадров как N + S + E + W . Это создало 4 кадра, которые заполнили все пространство, где верхняя половина окна имеет два кадра одинакового размера, а нижняя половина окна имеет два кадра одинакового размера. Мои кадры имеют рельеф (ПОДНЯТЫЙ), поэтому есть визуальное разделение каждого из них.

МОЯ ПРОБЛЕМА

Мой фрейм 1 (декартов квадрант 2) - это наименьший фрейм, но с сеткой он соответствует фрейму 2. Это хорошо, я этого хотел. Тем не менее, frame1 также имеет намного меньше виджетов, чем frame 2, и вместо выравнивания всех виджетов в sticky = NW (как и все мои другие кадры), он сначала центрирует все виджеты. Это приводит к тому, что виджеты имеют огромную мягкую границу в кадре, что делает его очень неровным. Я хочу, чтобы виджеты находились на границе NW моего фрейма1, и чтобы в них было свободное пространство под ними.

Есть ли метод сетки или концепция, которую я пропустил? Я вырыл тонны примеров / форумов / и т.д., ища похожее описание этой проблемы. Надеюсь, я был достаточно ясен, мой код сейчас не находится в очень презентабельном состоянии, так как сейчас я просто пытаюсь создать свою визуальную идею. Если вам нужна дополнительная информация или код, я могу написать.

Заранее спасибо, Крис. enter image description here

1 Ответ

1 голос
/ 18 мая 2011

Похоже, у вас есть шесть строк в кадре.Используйте grid_configure, чтобы установить вес седьмой строки равным 1. Если все остальные строки имеют вес ноль, эта дополнительная строка будет расширена, чтобы заполнить доступное пространство.

...