Как выровнять 2 панели инструментов в одном ряду, одну выровненную по левому краю и одну выровненную по правому краю? - PullRequest
2 голосов
/ 20 сентября 2010

Я использую wxPython, чтобы набросать пользовательский интерфейс для программы на Python.Мне нужно поставить 2 панели инструментов в одном ряду.Одна панель инструментов находится слева, а другая справа.

Для этого я использую BoxSizer (помещая растяжимое пространство между двумя панелями инструментов)

Однако растяжимое пространство дает пустое пространствопространство между двумя панелями инструментов, и для него нет подчеркивания, следовательно, это выглядит некрасиво.(Пожалуйста, предпочтите, чтобы эта картинка знала, что я имею в виду http://i55.tinypic.com/2dlrvaa.jpg).

Подчеркивания должны быть связаны друг с другом, чтобы они выглядели как одна панель инструментов в целом. Они дискретны из-за растягиваемого пространства.

Есть ли какое-нибудь решение, которое я могу попытаться преодолеть? Думаю, я могу либо удалить подчеркивания для панели инструментов, либо добавить подчеркивание к пустому пространству. Однако я не знаю, как этого добиться..

Вот часть моего кода:

# Create the top toolbar container
topToolBar = wx.BoxSizer(wx.HORIZONTAL)

# Add 2 toolbars to this sizer, with stretchable space 
# We add the same toolbar for testing purpose
topToolBar.Add(toolbar1,0,wx.ALIGN_LEFT,4) # add the toolbar to the sizer
topToolBar.AddStretchSpacer()
topToolBar.Add(toolbar1,0,wx.ALIGN_RIGHT ,4)

self.SetSizer(topToolBar)    

1 Ответ

4 голосов
/ 20 сентября 2010

Прошло много времени с тех пор, как я использовал wxPython, но вы пытались удалить проставку и установить пропорцию первой панели инструментов больше, чем у второй? Например,

topToolBar.Add(toolbar1,1,wx.ALIGN_LEFT,4) # note the 2nd param 'proportion' is 1
#topToolBar.AddStretchSpacer()
topToolBar.Add(toolbar1,0,wx.ALIGN_RIGHT,4)

Идея состоит в том, что первая панель инструментов расширяется, чтобы заполнить доступное пространство.

...