Интервал / пустая граница для wxWidgets - PullRequest
1 голос
/ 16 февраля 2012

Есть ли что-нибудь, что вы можете использовать, чтобы добавить пространство по краям окна или между компонентами с помощью wxWidgets / wxPython?Я хочу что-то, чтобы предотвратить сжатие компонентов к границе окна или друг к другу, подобно тому, что можно сделать с помощью EmptyBorder или Insets Java Swing.(Я знаю, что вы можете установить горизонтальные / вертикальные промежутки с некоторыми размерами, но я бы хотел что-то более гибкое.)

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

Размеры, предоставляемые wxWidgets, очень гибки. Вы уверены, что изучили все, на что они способны? Трудно представить, что вам может понадобиться, чтобы они не справились. Пожалуйста, опишите точно, что вам нужно, и опубликуйте код, который вы уже пробовали.

Вот пример:

sizer->Add(new wxButton(this, -1, "Button with 20 pixel border all round"),
      0,  wxALL, 20);

Вот демоверсия дополнительных параметров sizer. http://neume.sourceforge.net/sizerdemo/

Если вы действительно не можете использовать sizer для достижения того, что вам нужно, тогда вы можете явно расположить каждый виджет где угодно, передавая местоположение конструктору виджетов.

wxPoint button_position( 50,50 );   // position button 50 pixel down and to right of top left
new wxButton(this, -1, "Button", button_position )
1 голос
/ 16 февраля 2012

См. Параметр border в методе Add Sizer.Вы можете использовать параметр flag, чтобы указать, куда поместить границу, например wx.ALL, wx.RIGHT, wx.LEFT, wx.TOP и т. Д.и между виджетами.Иногда вы можете захотеть использовать AddSpacer Sizer для добавления места.Или вы можете просто сделать что-то вроде этого:

mySizer.Add((20, 100))

Для этого нужно поместить 100 пикселей между двумя виджетами на оси Y.Вам, вероятно, придется немного поиграть с ним, чтобы получить его так, как вы хотите.

См. Также http://wiki.wxpython.org/GridSizerTutorial или http://zetcode.com/wxpython/layout/

...