2012-03-27 2 views
1

я пытаюсь поставить шестнадцать checkbuttons в кадр, поместив их на четыре колонны, как:Как выровнять столбцы с несколькими Tkinter checkbuttons?

c1 = Tkinter.Checkbutton(group.interior(), text = 'Name', indicatoron= 1, variable = self.Checkvar_nr, command=cb) 
    c1.(row = 0, column = 0) 

и так далее до:

c16.(row = 3, column = 3) 

Все хорошо, кроме колонок вертикального выравнивания из-за различий в длина используемого текста. Как выровнять по горизонтали?

+0

также: 'c1.grid (row = 0, column = 0)' вместо 'c1. (Row = 0, column = 0)' –

ответ

3

Я не совсем понимаю проблему, так как столбцы должны быть выровнены по вертикали, так как это сетка. Я думаю, что вы говорите, что элементы в каждом столбце не выровнены по границе столбца. Попробуйте использовать sticky='w' при добавлении каждой контрольной кнопки в сетку. Это заставит их «придерживаться» левого края столбца.

+0

Именно об этом и был мой вопрос. Большое спасибо, ваш небольшой намек работает! – daikini

1

В качестве опции попробуйте поместить каждый элемент в не растягиваемый графический элемент.

Мысль о том, что диспетчер компоновки максимально использует экранную недвижимость. Поскольку вы хотите заняться больше места, что противоречит алгоритму менеджера компоновки, вам нужно будет найти графический контейнер, который не «изменяет размер».

Иногда вы можете сделать это, вручную отредактировав текстовую строку (менее предпочтительно). В других случаях вы можете использовать подобную структуру table (например, HTML). В других случаях вы можете использовать фрейм с определенными атрибутами ширины и высоты. Эти кадры затем помещаются внутри столбцов в качестве элементов.

Примечание: Прошло много времени с тех пор, как я играл с Tk. Я иду по памяти. Удачи!

(отредактировано:) Идет из памяти, столбцы будут регулировать ширину в зависимости от содержимого. Если в первом столбце есть несколько трехсимвольных ярлыков и пять символьных меток во втором столбце, ширина двух столбцов будет отличаться. (Примечание. Это зависит от менеджера компоновки.) Если параметр «фиксированная ширина» для рассматриваемого диспетчера макетов, то он должен поддерживать одинаковые ширины столбцов.

С менеджерами макетов, которые меняются с размерами на основе контента (HTML, CSS и т. Д.), Иногда необходимо размещать контент внутри контейнеров «неподвижных». Обычно это кадры. Рамы работают как ограничивающие прямоугольники. Этот подход работает, когда элемент, который должен иметь ширину и высоту, не имеет этой функции.

+0

Я использовал tk и Tkinter в течение нескольких десятилетий, и я могу " т понять ваш ответ. Что вы подразумеваете под «не растягиваемым графическим элементом» или «графическим контейнером»? Эти термины на самом деле ничего не означают в контексте Tkinter. Кроме того, я не уверен, что вы подразумеваете под «HTML для примера», поскольку Tkinter не поддерживает HTML. Кроме того, он уже использует табличную структуру, потому что использует «сетку». Я думаю, что ваш ответ был бы лучше, если бы вы были более точными в своей терминологии. –

Смежные вопросы