Автор оригинала: Mike Driscoll.
В моем последнем посте я написал, как использовать Gridsizer для создания общей формы. К сожалению, WX.TextCtrls все в конечном итоге выглядели жиром. Похоже, что пропуская флаг Wx.expand в Gridsizer при добавлении текстовогоCTRL заставляет его расширяться, чтобы заполнить ячейку, а также изменять размер, когда сам окно изменяется.
Один из способов исправить это раздражение, чтобы изменить то, как добавить TextCtrl в Sizer. Оригинальная линия выглядит так:
gridSizer.Add(inputTxtOne, 0, wx.EXPAND)
Теперь добавьте битовый флаг wx.all и настроить границу на 5 пикселей ширину:
gridSizer.Add(inputTxtOne, 0, wx.EXPAND|wx.ALL, 5)
Смотрите раньше и после экрана снимки ниже, чтобы увидеть эффект. Оба из них работали на машине Windows XP:
Перед
После
Одна вещь, которую нужно принять к сведению: если вы добавляете жирный виджет в любую из этих ячеек, например, многострочный текстовый текст, все другие элементы управления также станут заметно более широко, за исключением StaticCTRL. Книга Робина Данна, WXPYPHON в действии, гласит, что «Sizer Sizer лучше всего подходит для макетов, где дети, естественно, все тот же размер … Sizer Sizer с дико разными размерами, имеет тенденцию выглядеть немного странно». Он говорит, что если вы хотите использовать виджеты разных размеров в сетке, вам нужно использовать Sizer Flex Sizer или SIZER STRID.
Следите за обновлениями!